diff --git a/.repository-projection.json b/.repository-projection.json index 2dfc9f2..d767151 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "deixic-node", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "916d407917e806df56819c92b7ebc8c9cdcef9b5", + "sourceSha": "c27319825e1c40e34be35016e71b4553c4313dc0", "destinationRepository": "dx-corp/deixic-node", - "priorProjectedBase": "3625ac6da8a305139c6ae261e2bbf2a8e568c8de", + "priorProjectedBase": "57e61509eee84bc952bceaeb254eb670a9178822", "definitionDigest": "6c8bda5a9e80c50ccdc2d79d85f61b7f2373eb695dcc86f51f6240901cdf3c28", "toolDigest": "898e8657d9153a2a51d7c283bf83bb3350b5d1e6", - "contentDigest": "d884c19ec2248fa4555d1dbc6f50a2a31b92b736142b6daf50942e032af20f38", + "contentDigest": "b8a78da980b4c32972a75769b094ccdb30d0183caf38ae0a49b94cc75a7b4d8d", "publicationEligible": true } diff --git a/gen/ts/platform/v1/platform_pb.ts b/gen/ts/platform/v1/platform_pb.ts index 0cbc379..a302471 100644 --- a/gen/ts/platform/v1/platform_pb.ts +++ b/gen/ts/platform/v1/platform_pb.ts @@ -14,7 +14,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf"; * Describes the file platform/v1/platform.proto. */ export const file_platform_v1_platform: GenFile = /*@__PURE__*/ - fileDesc("ChpwbGF0Zm9ybS92MS9wbGF0Zm9ybS5wcm90bxILcGxhdGZvcm0udjEidAoLVGVuYW50U2NvcGUSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgCIAEoCUIHukgEcgIQARIPCgd0ZWFtX2lkGAMgASgJEhMKC2Vudmlyb25tZW50GAQgASgJInQKCVByaW5jaXBhbBIdCgxwcmluY2lwYWxfaWQYASABKAlCB7pIBHICEAESMgoEa2luZBgCIAEoDjIaLnBsYXRmb3JtLnYxLlByaW5jaXBhbEtpbmRCCLpIBYIBAhABEhQKDGRpc3BsYXlfbmFtZRgDIAEoCSJOCgVBY3RvchIxCglwcmluY2lwYWwYASABKAsyFi5wbGF0Zm9ybS52MS5QcmluY2lwYWxCBrpIA8gBARISCgpzZXNzaW9uX2lkGAIgASgJIkQKCVBvbGljeVJlZhIaCglwb2xpY3lfaWQYASABKAlCB7pIBHICEAESGwoKdmVyc2lvbl9pZBgCIAEoCUIHukgEcgIQASLBAQoGUG9saWN5EhoKCXBvbGljeV9pZBgBIAEoCUIHukgEcgIQARIvCgVzY29wZRgCIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESLwoEa2luZBgDIAEoDjIXLnBsYXRmb3JtLnYxLlBvbGljeUtpbmRCCLpIBYIBAhABEhUKBG5hbWUYBCABKAlCB7pIBHICEAESIgoRYWN0aXZlX3ZlcnNpb25faWQYBSABKAlCB7pIBHICEAEivwEKDVBvbGljeVZlcnNpb24SGwoKdmVyc2lvbl9pZBgBIAEoCUIHukgEcgIQARIaCglwb2xpY3lfaWQYAiABKAlCB7pIBHICEAESJAoTYXJ0aWZhY3RfdmVyc2lvbl9pZBgDIAEoCUIHukgEcgIQARIyCgpjcmVhdGVkX2J5GAQgASgLMhYucGxhdGZvcm0udjEuUHJpbmNpcGFsQga6SAPIAQESGwoKbGluZWFnZV9pZBgFIAEoCUIHukgEcgIQASKMAgoRQXV0aG9yaXR5RGVjaXNpb24SHAoLZGVjaXNpb25faWQYASABKAlCB7pIBHICEAESOgoEa2luZBgCIAEoDjIiLnBsYXRmb3JtLnYxLkF1dGhvcml0eURlY2lzaW9uS2luZEIIukgFggECEAESKwoLcG9saWN5X3JlZnMYAyADKAsyFi5wbGF0Zm9ybS52MS5Qb2xpY3lSZWYSDwoHcmVhc29ucxgEIAMoCRIbChNhcHByb3ZhbF9yZXF1ZXN0X2lkGAUgASgJEhAKCGdyYW50X2lkGAYgASgJEjAKDGV2YWx1YXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi4QIKEE9wZXJhdGlvbkNvbnRleHQSLwoFc2NvcGUYASABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEikKBWFjdG9yGAIgASgLMhIucGxhdGZvcm0udjEuQWN0b3JCBrpIA8gBARI5CglhdXRob3JpdHkYAyABKAsyHi5wbGF0Zm9ybS52MS5BdXRob3JpdHlEZWNpc2lvbkIGukgDyAEBEiAKD2lkZW1wb3RlbmN5X2tleRgEIAEoCUIHukgEcgIQARIbCgpsaW5lYWdlX2lkGAUgASgJQge6SARyAhABEhsKCnJlcXVlc3RfaWQYBiABKAlCB7pIBHICEAESLwoDbm93GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEikKCGV2aWRlbmNlGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK1AwoPT3BlcmF0aW9uUmVjb3JkEh0KDG9wZXJhdGlvbl9pZBgBIAEoCUIHukgEcgIQARIvCgVzY29wZRgCIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESKQoFYWN0b3IYAyABKAsyEi5wbGF0Zm9ybS52MS5BY3RvckIGukgDyAEBEjkKCWF1dGhvcml0eRgEIAEoCzIeLnBsYXRmb3JtLnYxLkF1dGhvcml0eURlY2lzaW9uQga6SAPIAQESIAoPaWRlbXBvdGVuY3lfa2V5GAUgASgJQge6SARyAhABEhsKCmxpbmVhZ2VfaWQYBiABKAlCB7pIBHICEAESGwoKcmVxdWVzdF9pZBgHIAEoCUIHukgEcgIQARI3CgtyZWNvcmRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBrpIA8gBARIfCg5vcGVyYXRpb25fdHlwZRgJIAEoCUIHukgEcgIQARIbCgpvd25lcl90eXBlGAogASgJQge6SARyAhABEhkKCG93bmVyX2lkGAsgASgJQge6SARyAhABIncKDkV2YWxBc3NpZ25tZW50EhoKCWNvaG9ydF9pZBgBIAEoCUIHukgEcgIQARIdCgxjYW5kaWRhdGVfaWQYAiABKAlCB7pIBHICEAESEwoLYmFzZWxpbmVfaWQYAyABKAkSFQoNYXNzaWdubWVudF9pZBgEIAEoCSLNAQoLTmV3V29ya0l0ZW0SLQoEa2luZBgBIAEoDjIVLnBsYXRmb3JtLnYxLldvcmtLaW5kQgi6SAWCAQIQARIWCgV0aXRsZRgCIAEoCUIHukgEcgIQARIWCg5wYXJlbnRfd29ya19pZBgDIAEoCRIpCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoPZXZhbF9hc3NpZ25tZW50GAUgASgLMhsucGxhdGZvcm0udjEuRXZhbEFzc2lnbm1lbnQilwMKCFdvcmtJdGVtEhgKB3dvcmtfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEi0KBGtpbmQYAyABKA4yFS5wbGF0Zm9ybS52MS5Xb3JrS2luZEIIukgFggECEAESLwoFc3RhdGUYBCABKA4yFi5wbGF0Zm9ybS52MS5Xb3JrU3RhdGVCCLpIBYIBAhABEhYKBXRpdGxlGAUgASgJQge6SARyAhABEhYKDnBhcmVudF93b3JrX2lkGAYgASgJEjIKCmNyZWF0ZWRfYnkYByABKAsyFi5wbGF0Zm9ybS52MS5QcmluY2lwYWxCBrpIA8gBARIbCgpsaW5lYWdlX2lkGAggASgJQge6SARyAhABEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cg9ldmFsX2Fzc2lnbm1lbnQYCiABKAsyGy5wbGF0Zm9ybS52MS5FdmFsQXNzaWdubWVudCKMAQoLUmVzb3VyY2VSZWYSHAoLcmVzb3VyY2VfaWQYASABKAlCB7pIBHICEAESMQoEa2luZBgCIAEoDjIZLnBsYXRmb3JtLnYxLlJlc291cmNlS2luZEIIukgFggECEAESEgoKdmVyc2lvbl9pZBgDIAEoCRIYCgd2ZXJzaW9uGAQgASgFQge6SAQaAigAImwKCVJlY29yZFJlZhIxCgRraW5kGAEgASgOMhcucGxhdGZvcm0udjEuUmVjb3JkS2luZEIKukgHggEEEAEgABIaCglyZWNvcmRfaWQYAiABKAlCB7pIBHICEAESEAoIcmV2aXNpb24YAyABKAkiqgUKDEFjdGlvbkludGVudBIhChBhY3Rpb25faW50ZW50X2lkGAEgASgJQge6SARyAhABEi8KBXNjb3BlGAIgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARIzCgtwcm9wb3NlZF9ieRgDIAEoCzIWLnBsYXRmb3JtLnYxLlByaW5jaXBhbEIGukgDyAEBEhwKC2FjdGlvbl90eXBlGAQgASgJQge6SARyAhABEjEKD3RhcmdldF9yZXNvdXJjZRgFIAEoCzIYLnBsYXRmb3JtLnYxLlJlc291cmNlUmVmEh0KDGlucHV0X2RpZ2VzdBgGIAEoCUIHukgEcgIQARIyCglyaXNrX3RpZXIYByABKA4yFS5wbGF0Zm9ybS52MS5SaXNrVGllckIIukgFggECEAESQgoSYXV0aG9yaXR5X2RlY2lzaW9uGAggASgLMh4ucGxhdGZvcm0udjEuQXV0aG9yaXR5RGVjaXNpb25CBrpIA8gBARI8Cg5hcHByb3ZhbF9zdGF0ZRgJIAEoDjIaLnBsYXRmb3JtLnYxLkFwcHJvdmFsU3RhdGVCCLpIBYIBAhABEkQKD2V4ZWN1dGlvbl9zdGF0ZRgKIAEoDjIhLnBsYXRmb3JtLnYxLkFjdGlvbkV4ZWN1dGlvblN0YXRlQgi6SAWCAQIQARIbCgpsaW5lYWdlX2lkGAsgASgJQge6SARyAhABEikKCGV2aWRlbmNlGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgZyZXN1bHQYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKD2V2YWxfYXNzaWdubWVudBgOIAEoCzIbLnBsYXRmb3JtLnYxLkV2YWxBc3NpZ25tZW50IoYCChJOZXdBcnRpZmFjdFZlcnNpb24SHAoLYXJ0aWZhY3RfaWQYASABKAlCB7pIBHICEAESMQoEa2luZBgCIAEoDjIZLnBsYXRmb3JtLnYxLkFydGlmYWN0S2luZEIIukgFggECEAESFgoFbGFiZWwYAyABKAlCB7pIBHICEAESHAoLY29udGVudF9yZWYYBCABKAlCB7pIBHICEAESDgoGbGFiZWxzGAUgAygJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgxyZXNvdXJjZV9yZWYYByABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZiKyAgoIQXJ0aWZhY3QSHAoLYXJ0aWZhY3RfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEjEKBGtpbmQYAyABKA4yGS5wbGF0Zm9ybS52MS5BcnRpZmFjdEtpbmRCCLpIBYIBAhABEjMKBXN0YXRlGAQgASgOMhoucGxhdGZvcm0udjEuQXJ0aWZhY3RTdGF0ZUIIukgFggECEAESIgoRbGF0ZXN0X3ZlcnNpb25faWQYBSABKAlCB7pIBHICEAESGwoKbGluZWFnZV9pZBgGIAEoCUIHukgEcgIQARIuCgxyZXNvdXJjZV9yZWYYByABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZiLHAgoPQXJ0aWZhY3RWZXJzaW9uEiQKE2FydGlmYWN0X3ZlcnNpb25faWQYASABKAlCB7pIBHICEAESHAoLYXJ0aWZhY3RfaWQYAiABKAlCB7pIBHICEAESFgoFbGFiZWwYAyABKAlCB7pIBHICEAESHAoLY29udGVudF9yZWYYBCABKAlCB7pIBHICEAESMgoKY3JlYXRlZF9ieRgFIAEoCzIWLnBsYXRmb3JtLnYxLlByaW5jaXBhbEIGukgDyAEBEhsKCmxpbmVhZ2VfaWQYBiABKAlCB7pIBHICEAESDgoGbGFiZWxzGAcgAygJEikKCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgxyZXNvdXJjZV9yZWYYCSABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZiL2AQoORXZpZGVuY2VSZWNvcmQSHAoLZXZpZGVuY2VfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEjEKBGtpbmQYAyABKA4yGS5wbGF0Zm9ybS52MS5FdmlkZW5jZUtpbmRCCLpIBYIBAhABEhsKCnN1YmplY3RfaWQYBCABKAlCB7pIBHICEAESGwoKbGluZWFnZV9pZBgFIAEoCUIHukgEcgIQARIoCgdwYXlsb2FkGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKNAwoFU2NvcmUSGQoIc2NvcmVfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEhsKCnN1YmplY3RfaWQYAyABKAlCB7pIBHICEAESGgoJY3JpdGVyaW9uGAQgASgJQge6SARyAhABEg0KBXZhbHVlGAUgASgBEhcKBnNjb3JlchgGIAEoCUIHukgEcgIQARIOCgZ0YXJnZXQYByABKAkSNAoPZXZhbF9hc3NpZ25tZW50GAggASgLMhsucGxhdGZvcm0udjEuRXZhbEFzc2lnbm1lbnQSEwoLZXZpZGVuY2VfaWQYCSABKAkSGwoKbGluZWFnZV9pZBgKIAEoCUIHukgEcgIQARI1CglzY29yZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQga6SAPIAQESKAoHcGF5bG9hZBgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi6AMKDlJlY29tbWVuZGF0aW9uEiIKEXJlY29tbWVuZGF0aW9uX2lkGAEgASgJQge6SARyAhABEi8KBXNjb3BlGAIgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARI3CgRraW5kGAMgASgOMh8ucGxhdGZvcm0udjEuUmVjb21tZW5kYXRpb25LaW5kQgi6SAWCAQIQARI5CgVzdGF0ZRgEIAEoDjIgLnBsYXRmb3JtLnYxLlJlY29tbWVuZGF0aW9uU3RhdGVCCLpIBYIBAhABEhsKCnN1YmplY3RfaWQYBSABKAlCB7pIBHICEAESHAoLYWN0aW9uX3R5cGUYBiABKAlCB7pIBHICEAESNAoPZXZhbF9hc3NpZ25tZW50GAcgASgLMhsucGxhdGZvcm0udjEuRXZhbEFzc2lnbm1lbnQSEAoIc2NvcmVfaWQYCCABKAkSGAoQYWN0aW9uX2ludGVudF9pZBgJIAEoCRIbCgpsaW5lYWdlX2lkGAogASgJQge6SARyAhABEioKCXJhdGlvbmFsZRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJwoGcmVzdWx0GAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKUAgoLRG9tYWluRXZlbnQSGQoIZXZlbnRfaWQYASABKAlCB7pIBHICEAESHQoMb3BlcmF0aW9uX2lkGAIgASgJQge6SARyAhABEi8KBXNjb3BlGAMgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARIbCgpvd25lcl90eXBlGAQgASgJQge6SARyAhABEhkKCG93bmVyX2lkGAUgASgJQge6SARyAhABEhsKCmV2ZW50X3R5cGUYBiABKAlCB7pIBHICEAESGwoKbGluZWFnZV9pZBgHIAEoCUIHukgEcgIQARIoCgdwYXlsb2FkGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLeAQoNT3V0Ym94TWVzc2FnZRIiChFvdXRib3hfbWVzc2FnZV9pZBgBIAEoCUIHukgEcgIQARIdCgxvcGVyYXRpb25faWQYAiABKAlCB7pIBHICEAESIAoPZG9tYWluX2V2ZW50X2lkGAMgASgJQge6SARyAhABEhYKBXRvcGljGAQgASgJQge6SARyAhABEjMKBnN0YXR1cxgFIAEoDjIZLnBsYXRmb3JtLnYxLk91dGJveFN0YXR1c0IIukgFggECEAESGwoKbGluZWFnZV9pZBgGIAEoCUIHukgEcgIQASLYAQoQT3BlcmF0aW9uUmVjZWlwdBI+ChBvcGVyYXRpb25fcmVjb3JkGAEgASgLMhwucGxhdGZvcm0udjEuT3BlcmF0aW9uUmVjb3JkQga6SAPIAQESNgoMZG9tYWluX2V2ZW50GAIgASgLMhgucGxhdGZvcm0udjEuRG9tYWluRXZlbnRCBrpIA8gBARI6Cg5vdXRib3hfbWVzc2FnZRgDIAEoCzIaLnBsYXRmb3JtLnYxLk91dGJveE1lc3NhZ2VCBrpIA8gBARIQCghyZXBsYXllZBgEIAEoCCLXBAoQVXNhZ2VMZWRnZXJFbnRyeRIfCg51c2FnZV9lbnRyeV9pZBgBIAEoCUIHukgEcgIQARIdCgxvcGVyYXRpb25faWQYAiABKAlCB7pIBHICEAESLwoFc2NvcGUYAyABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEjEKCXByaW5jaXBhbBgEIAEoCzIWLnBsYXRmb3JtLnYxLlByaW5jaXBhbEIGukgDyAEBEhgKEGFjdGlvbl9pbnRlbnRfaWQYBSABKAkSDwoHd29ya19pZBgGIAEoCRIbChNhcnRpZmFjdF92ZXJzaW9uX2lkGAcgASgJEhAKCHRyYWNlX2lkGAggASgJEg8KB3NwYW5faWQYCSABKAkSEAoIcHJvdmlkZXIYCiABKAkSKgoIcmVzb3VyY2UYCyABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZhI7CgttZXRyaWNfa2luZBgMIAEoDjIcLnBsYXRmb3JtLnYxLlVzYWdlTWV0cmljS2luZEIIukgFggECEAESIQoQcXVhbnRpdHlfZGVjaW1hbBgNIAEoCUIHukgEcgIQARIVCgR1bml0GA4gASgJQge6SARyAhABEjcKC29ic2VydmVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEhsKCmxpbmVhZ2VfaWQYECABKAlCB7pIBHICEAESKQoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrUDChBTcGVuZExlZGdlckVudHJ5Eh8KDnNwZW5kX2VudHJ5X2lkGAEgASgJQge6SARyAhABEh0KDG9wZXJhdGlvbl9pZBgCIAEoCUIHukgEcgIQARIvCgVzY29wZRgDIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESFgoOdXNhZ2VfZW50cnlfaWQYBCABKAkSGAoQYWN0aW9uX2ludGVudF9pZBgFIAEoCRIVCg1hbW91bnRfbWljcm9zGAYgASgDEhoKCGN1cnJlbmN5GAcgASgJQgi6SAVyA5gBAxIyChJwcmljaW5nX3BvbGljeV9yZWYYCCABKAsyFi5wbGF0Zm9ybS52MS5Qb2xpY3lSZWYSNwoLaW5jdXJyZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQga6SAPIAQESGwoKbGluZWFnZV9pZBgKIAEoCUIHukgEcgIQARIWCg5hbGxvY2F0aW9uX2tleRgLIAEoCRIpCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiqwMKD0F0dHJpYnV0aW9uRWRnZRIkChNhdHRyaWJ1dGlvbl9lZGdlX2lkGAEgASgJQge6SARyAhABEh0KDG9wZXJhdGlvbl9pZBgCIAEoCUIHukgEcgIQARIvCgVzY29wZRgDIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESQgoLc291cmNlX2tpbmQYBCABKA4yIy5wbGF0Zm9ybS52MS5BdHRyaWJ1dGlvblN1YmplY3RLaW5kQgi6SAWCAQIQARIaCglzb3VyY2VfaWQYBSABKAlCB7pIBHICEAESQgoLdGFyZ2V0X2tpbmQYBiABKA4yIy5wbGF0Zm9ybS52MS5BdHRyaWJ1dGlvblN1YmplY3RLaW5kQgi6SAWCAQIQARIaCgl0YXJnZXRfaWQYByABKAlCB7pIBHICEAESGQoIcmVsYXRpb24YCCABKAlCB7pIBHICEAESFQoNd2VpZ2h0X21pY3JvcxgJIAEoAxIbCgpsaW5lYWdlX2lkGAogASgJQge6SARyAhABEhMKC2V2aWRlbmNlX2lkGAsgASgJIkYKE0dldEJvb3RzdHJhcFJlcXVlc3QSLwoFc2NvcGUYASABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBIn4KFEdldEJvb3RzdHJhcFJlc3BvbnNlEi8KBXNjb3BlGAEgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARI1CgxjYXBhYmlsaXRpZXMYAiADKAsyHy5wbGF0Zm9ybS52MS5QbGF0Zm9ybUNhcGFiaWxpdHkirgEKElBsYXRmb3JtQ2FwYWJpbGl0eRIVCgRuYW1lGAEgASgJQge6SARyAhABEjcKBnN0YXR1cxgCIAEoDjIdLnBsYXRmb3JtLnYxLkNhcGFiaWxpdHlTdGF0dXNCCLpIBYIBAhABEg4KBnJlYXNvbhgDIAEoCRI4CghmZWF0dXJlcxgEIAMoCzImLnBsYXRmb3JtLnYxLlBsYXRmb3JtQ2FwYWJpbGl0eUZlYXR1cmUiZwoZUGxhdGZvcm1DYXBhYmlsaXR5RmVhdHVyZRIaCglvcGVyYXRpb24YASABKAlCB7pIBHICEAESFwoGbWV0aG9kGAIgASgJQge6SARyAhABEhUKBHBhdGgYAyABKAlCB7pIBHICEAEiewoRQ3JlYXRlV29ya1JlcXVlc3QSNgoHY29udGV4dBgBIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvbkNvbnRleHRCBrpIA8gBARIuCgR3b3JrGAIgASgLMhgucGxhdGZvcm0udjEuTmV3V29ya0l0ZW1CBrpIA8gBASJ5ChJDcmVhdGVXb3JrUmVzcG9uc2USKwoEd29yaxgBIAEoCzIVLnBsYXRmb3JtLnYxLldvcmtJdGVtQga6SAPIAQESNgoHcmVjZWlwdBgCIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvblJlY2VpcHRCBrpIA8gBASKdAgoUUHJvcG9zZUFjdGlvblJlcXVlc3QSNgoHY29udGV4dBgBIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvbkNvbnRleHRCBrpIA8gBARIcCgthY3Rpb25fdHlwZRgCIAEoCUIHukgEcgIQARIxCg90YXJnZXRfcmVzb3VyY2UYAyABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZhIdCgxpbnB1dF9kaWdlc3QYBCABKAlCB7pIBHICEAESMgoJcmlza190aWVyGAUgASgOMhUucGxhdGZvcm0udjEuUmlza1RpZXJCCLpIBYIBAhABEikKCGV2aWRlbmNlGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKJAQoVUHJvcG9zZUFjdGlvblJlc3BvbnNlEjgKDWFjdGlvbl9pbnRlbnQYASABKAsyGS5wbGF0Zm9ybS52MS5BY3Rpb25JbnRlbnRCBrpIA8gBARI2CgdyZWNlaXB0GAIgASgLMh0ucGxhdGZvcm0udjEuT3BlcmF0aW9uUmVjZWlwdEIGukgDyAEBIooBChVDcmVhdGVBcnRpZmFjdFJlcXVlc3QSNgoHY29udGV4dBgBIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvbkNvbnRleHRCBrpIA8gBARI5CghhcnRpZmFjdBgCIAEoCzIfLnBsYXRmb3JtLnYxLk5ld0FydGlmYWN0VmVyc2lvbkIGukgDyAEBIrgBChZDcmVhdGVBcnRpZmFjdFJlc3BvbnNlEi8KCGFydGlmYWN0GAEgASgLMhUucGxhdGZvcm0udjEuQXJ0aWZhY3RCBrpIA8gBARI1Cgd2ZXJzaW9uGAIgASgLMhwucGxhdGZvcm0udjEuQXJ0aWZhY3RWZXJzaW9uQga6SAPIAQESNgoHcmVjZWlwdBgDIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvblJlY2VpcHRCBrpIA8gBASLJAQoVUmVjb3JkRXZpZGVuY2VSZXF1ZXN0EjYKB2NvbnRleHQYASABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25Db250ZXh0Qga6SAPIAQESMQoEa2luZBgCIAEoDjIZLnBsYXRmb3JtLnYxLkV2aWRlbmNlS2luZEIIukgFggECEAESGwoKc3ViamVjdF9pZBgDIAEoCUIHukgEcgIQARIoCgdwYXlsb2FkGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKHAQoWUmVjb3JkRXZpZGVuY2VSZXNwb25zZRI1CghldmlkZW5jZRgBIAEoCzIbLnBsYXRmb3JtLnYxLkV2aWRlbmNlUmVjb3JkQga6SAPIAQESNgoHcmVjZWlwdBgCIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvblJlY2VpcHRCBrpIA8gBASKdAgoSUmVjb3JkU2NvcmVSZXF1ZXN0EjYKB2NvbnRleHQYASABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25Db250ZXh0Qga6SAPIAQESGwoKc3ViamVjdF9pZBgCIAEoCUIHukgEcgIQARIaCgljcml0ZXJpb24YAyABKAlCB7pIBHICEAESDQoFdmFsdWUYBCABKAESFwoGc2NvcmVyGAUgASgJQge6SARyAhABEg4KBnRhcmdldBgGIAEoCRI0Cg9ldmFsX2Fzc2lnbm1lbnQYByABKAsyGy5wbGF0Zm9ybS52MS5FdmFsQXNzaWdubWVudBIoCgdwYXlsb2FkGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKvAQoTUmVjb3JkU2NvcmVSZXNwb25zZRIpCgVzY29yZRgBIAEoCzISLnBsYXRmb3JtLnYxLlNjb3JlQga6SAPIAQESNQoIZXZpZGVuY2UYAiABKAsyGy5wbGF0Zm9ybS52MS5FdmlkZW5jZVJlY29yZEIGukgDyAEBEjYKB3JlY2VpcHQYAyABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25SZWNlaXB0Qga6SAPIAQEiwgMKGkFwcGx5UmVjb21tZW5kYXRpb25SZXF1ZXN0EjYKB2NvbnRleHQYASABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25Db250ZXh0Qga6SAPIAQESNwoEa2luZBgCIAEoDjIfLnBsYXRmb3JtLnYxLlJlY29tbWVuZGF0aW9uS2luZEIIukgFggECEAESGwoKc3ViamVjdF9pZBgDIAEoCUIHukgEcgIQARIcCgthY3Rpb25fdHlwZRgEIAEoCUIHukgEcgIQARIdCgxpbnB1dF9kaWdlc3QYBSABKAlCB7pIBHICEAESMgoJcmlza190aWVyGAYgASgOMhUucGxhdGZvcm0udjEuUmlza1RpZXJCCLpIBYIBAhABEjEKD3RhcmdldF9yZXNvdXJjZRgHIAEoCzIYLnBsYXRmb3JtLnYxLlJlc291cmNlUmVmEjQKD2V2YWxfYXNzaWdubWVudBgIIAEoCzIbLnBsYXRmb3JtLnYxLkV2YWxBc3NpZ25tZW50EhAKCHNjb3JlX2lkGAkgASgJEioKCXJhdGlvbmFsZRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QizAEKG0FwcGx5UmVjb21tZW5kYXRpb25SZXNwb25zZRI7Cg5yZWNvbW1lbmRhdGlvbhgBIAEoCzIbLnBsYXRmb3JtLnYxLlJlY29tbWVuZGF0aW9uQga6SAPIAQESOAoNYWN0aW9uX2ludGVudBgCIAEoCzIZLnBsYXRmb3JtLnYxLkFjdGlvbkludGVudEIGukgDyAEBEjYKB3JlY2VpcHQYAyABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25SZWNlaXB0Qga6SAPIAQEqvwEKDVByaW5jaXBhbEtpbmQSHgoaUFJJTkNJUEFMX0tJTkRfVU5TUEVDSUZJRUQQABIYChRQUklOQ0lQQUxfS0lORF9IVU1BThABEiIKHlBSSU5DSVBBTF9LSU5EX1NFUlZJQ0VfQUNDT1VOVBACEhgKFFBSSU5DSVBBTF9LSU5EX0FHRU5UEAMSGQoVUFJJTkNJUEFMX0tJTkRfREVWSUNFEAQSGwoXUFJJTkNJUEFMX0tJTkRfV09SS0xPQUQQBSq1AQoKUG9saWN5S2luZBIbChdQT0xJQ1lfS0lORF9VTlNQRUNJRklFRBAAEhkKFVBPTElDWV9LSU5EX0FVVEhPUklUWRABEhoKFlBPTElDWV9LSU5EX0NSRURFTlRJQUwQAhIfChtQT0xJQ1lfS0lORF9TT1VSQ0VfT0ZfVFJVVEgQAxIZChVQT0xJQ1lfS0lORF9MSUZFQ1lDTEUQBBIXChNQT0xJQ1lfS0lORF9CSUxMSU5HEAUqvgIKFUF1dGhvcml0eURlY2lzaW9uS2luZBInCiNBVVRIT1JJVFlfREVDSVNJT05fS0lORF9VTlNQRUNJRklFRBAAEiEKHUFVVEhPUklUWV9ERUNJU0lPTl9LSU5EX0FMTE9XEAESIAocQVVUSE9SSVRZX0RFQ0lTSU9OX0tJTkRfREVOWRACEiwKKEFVVEhPUklUWV9ERUNJU0lPTl9LSU5EX1JFUVVJUkVfQVBQUk9WQUwQAxItCilBVVRIT1JJVFlfREVDSVNJT05fS0lORF9BUFBST1ZBTF9SRVNPTFZFRBAEEikKJUFVVEhPUklUWV9ERUNJU0lPTl9LSU5EX0dSQU5UX0VYUElSRUQQBRIvCitBVVRIT1JJVFlfREVDSVNJT05fS0lORF9ERUxFR0FUSU9OX05BUlJPV0VEEAYqvwIKCFdvcmtLaW5kEhkKFVdPUktfS0lORF9VTlNQRUNJRklFRBAAEhcKE1dPUktfS0lORF9PQkpFQ1RJVkUQARIWChJXT1JLX0tJTkRfV09SS0ZMT1cQAhIXChNXT1JLX0tJTkRfQUdFTlRfUlVOEAMSEgoOV09SS19LSU5EX1NURVAQBBISCg5XT1JLX0tJTkRfV0FJVBAFEhMKD1dPUktfS0lORF9SRVRSWRAGEhwKGFdPUktfS0lORF9UT09MX0VYRUNVVElPThAHEhwKGFdPUktfS0lORF9SVU5ORVJfU0VTU0lPThAIEhYKEldPUktfS0lORF9FVkFMX1JVThAJEh4KGldPUktfS0lORF9DT01QVVRFUl9NSVNTSU9OEAoSHQoZV09SS19LSU5EX0FSVElGQUNUX1JFTkRFUhALKtIBCglXb3JrU3RhdGUSGgoWV09SS19TVEFURV9VTlNQRUNJRklFRBAAEhcKE1dPUktfU1RBVEVfUFJPUE9TRUQQARIVChFXT1JLX1NUQVRFX1FVRVVFRBACEhYKEldPUktfU1RBVEVfUlVOTklORxADEhYKEldPUktfU1RBVEVfV0FJVElORxAEEhgKFFdPUktfU1RBVEVfU1VDQ0VFREVEEAUSFQoRV09SS19TVEFURV9GQUlMRUQQBhIYChRXT1JLX1NUQVRFX0NBTkNFTExFRBAHKq0DCgxSZXNvdXJjZUtpbmQSHQoZUkVTT1VSQ0VfS0lORF9VTlNQRUNJRklFRBAAEhcKE1JFU09VUkNFX0tJTkRfQUdFTlQQARIWChJSRVNPVVJDRV9LSU5EX1RPT0wQAhIWChJSRVNPVVJDRV9LSU5EX1JFUE8QAxIZChVSRVNPVVJDRV9LSU5EX0RBVEFTRVQQBBIaChZSRVNPVVJDRV9LSU5EX0RBVEFCQVNFEAUSHAoYUkVTT1VSQ0VfS0lORF9DUk1fT0JKRUNUEAYSHQoZUkVTT1VSQ0VfS0lORF9NT0RFTF9ST1VURRAHEhoKFlJFU09VUkNFX0tJTkRfRVhURVJOQUwQCBIcChhSRVNPVVJDRV9LSU5EX1ZGU19PQkpFQ1QQCRIkCiBSRVNPVVJDRV9LSU5EX1ZGU19PQkpFQ1RfVkVSU0lPThAKEhoKFlJFU09VUkNFX0tJTkRfQVJUSUZBQ1QQCxIiCh5SRVNPVVJDRV9LSU5EX0FSVElGQUNUX1ZFUlNJT04QDBIhCh1SRVNPVVJDRV9LSU5EX0dFTkVSQVRFRF9BU1NFVBANKowDCgpSZWNvcmRLaW5kEhsKF1JFQ09SRF9LSU5EX1VOU1BFQ0lGSUVEEAASEwoPUkVDT1JEX0tJTkRfUlVOEAESGQoVUkVDT1JEX0tJTkRfTU9ERUxfUlVOEAISHgoaUkVDT1JEX0tJTkRfVE9PTF9FWEVDVVRJT04QAxIfChtSRUNPUkRfS0lORF9QT0xJQ1lfREVDSVNJT04QBBIYChRSRUNPUkRfS0lORF9BUFBST1ZBTBAFEhoKFlJFQ09SRF9LSU5EX0NSRURFTlRJQUwQBhIZChVSRUNPUkRfS0lORF9DT05ORUNUT1IQBxIhCh1SRUNPUkRfS0lORF9DT05ORUNUT1JfU0VTU0lPThAIEhgKFFJFQ09SRF9LSU5EX0FSVElGQUNUEAkSFQoRUkVDT1JEX0tJTkRfVVNBR0UQChIXChNSRUNPUkRfS0lORF9SRUNFSVBUEAsSGAoUUkVDT1JEX0tJTkRfRVZJREVOQ0UQDBIYChRSRUNPUkRfS0lORF9FVkFMX1JVThANKnoKCFJpc2tUaWVyEhkKFVJJU0tfVElFUl9VTlNQRUNJRklFRBAAEhEKDVJJU0tfVElFUl9MT1cQARIUChBSSVNLX1RJRVJfTUVESVVNEAISEgoOUklTS19USUVSX0hJR0gQAxIWChJSSVNLX1RJRVJfQ1JJVElDQUwQBCrBAQoNQXBwcm92YWxTdGF0ZRIeChpBUFBST1ZBTF9TVEFURV9VTlNQRUNJRklFRBAAEh8KG0FQUFJPVkFMX1NUQVRFX05PVF9SRVFVSVJFRBABEhsKF0FQUFJPVkFMX1NUQVRFX1JFUVVJUkVEEAISGwoXQVBQUk9WQUxfU1RBVEVfUkVTT0xWRUQQAxIZChVBUFBST1ZBTF9TVEFURV9ERU5JRUQQBBIaChZBUFBST1ZBTF9TVEFURV9FWFBJUkVEEAUqwQIKFEFjdGlvbkV4ZWN1dGlvblN0YXRlEiYKIkFDVElPTl9FWEVDVVRJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIjCh9BQ1RJT05fRVhFQ1VUSU9OX1NUQVRFX1BST1BPU0VEEAESIwofQUNUSU9OX0VYRUNVVElPTl9TVEFURV9BUFBST1ZFRBACEiIKHkFDVElPTl9FWEVDVVRJT05fU1RBVEVfQkxPQ0tFRBADEiQKIEFDVElPTl9FWEVDVVRJT05fU1RBVEVfRVhFQ1VUSU5HEAQSJAogQUNUSU9OX0VYRUNVVElPTl9TVEFURV9TVUNDRUVERUQQBRIhCh1BQ1RJT05fRVhFQ1VUSU9OX1NUQVRFX0ZBSUxFRBAGEiQKIEFDVElPTl9FWEVDVVRJT05fU1RBVEVfQ0FOQ0VMTEVEEAcquQIKDEFydGlmYWN0S2luZBIdChlBUlRJRkFDVF9LSU5EX1VOU1BFQ0lGSUVEEAASGAoUQVJUSUZBQ1RfS0lORF9QUk9NUFQQARIXChNBUlRJRkFDVF9LSU5EX1NLSUxMEAISHgoaQVJUSUZBQ1RfS0lORF9BR0VOVF9DT05GSUcQAxIcChhBUlRJRkFDVF9LSU5EX0VWQUxfU1VJVEUQBBIaChZBUlRJRkFDVF9LSU5EX1NDRU5BUklPEAUSIAocQVJUSUZBQ1RfS0lORF9HRU5FUkFURURfRklMRRAGEh4KGkFSVElGQUNUX0tJTkRfQ09OVEVYVF9JVEVNEAcSHAoYQVJUSUZBQ1RfS0lORF9WRlNfT0JKRUNUEAgSHQoZQVJUSUZBQ1RfS0lORF9NT0RFTF9ST1VURRAJKqABCg1BcnRpZmFjdFN0YXRlEh4KGkFSVElGQUNUX1NUQVRFX1VOU1BFQ0lGSUVEEAASGAoUQVJUSUZBQ1RfU1RBVEVfRFJBRlQQARIZChVBUlRJRkFDVF9TVEFURV9BQ1RJVkUQAhIdChlBUlRJRkFDVF9TVEFURV9ERVBSRUNBVEVEEAMSGwoXQVJUSUZBQ1RfU1RBVEVfQVJDSElWRUQQBCr3AQoMRXZpZGVuY2VLaW5kEh0KGUVWSURFTkNFX0tJTkRfVU5TUEVDSUZJRUQQABIdChlFVklERU5DRV9LSU5EX0FVRElUX0VWRU5UEAESHAoYRVZJREVOQ0VfS0lORF9UUkFDRV9TUEFOEAISFwoTRVZJREVOQ0VfS0lORF9VU0FHRRADEh0KGUVWSURFTkNFX0tJTkRfQVRURVNUQVRJT04QBBIfChtFVklERU5DRV9LSU5EX1JFUExBWV9CVU5ETEUQBRIZChVFVklERU5DRV9LSU5EX0xJTkVBR0UQBhIXChNFVklERU5DRV9LSU5EX1NDT1JFEAcqxgEKElJlY29tbWVuZGF0aW9uS2luZBIjCh9SRUNPTU1FTkRBVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASKQolUkVDT01NRU5EQVRJT05fS0lORF9QUk9NT1RFX0NBTkRJREFURRABEiAKHFJFQ09NTUVOREFUSU9OX0tJTkRfUk9MTEJBQ0sQAhIgChxSRUNPTU1FTkRBVElPTl9LSU5EX1JFV0VJR0hUEAMSHAoYUkVDT01NRU5EQVRJT05fS0lORF9IT0xEEAQqowEKE1JlY29tbWVuZGF0aW9uU3RhdGUSJAogUkVDT01NRU5EQVRJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIhCh1SRUNPTU1FTkRBVElPTl9TVEFURV9QUk9QT1NFRBABEiAKHFJFQ09NTUVOREFUSU9OX1NUQVRFX0FQUExJRUQQAhIhCh1SRUNPTU1FTkRBVElPTl9TVEFURV9SRUpFQ1RFRBADKn8KDE91dGJveFN0YXR1cxIdChlPVVRCT1hfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVT1VUQk9YX1NUQVRVU19QRU5ESU5HEAESGwoXT1VUQk9YX1NUQVRVU19QVUJMSVNIRUQQAhIYChRPVVRCT1hfU1RBVFVTX0ZBSUxFRBADKtYCCg9Vc2FnZU1ldHJpY0tpbmQSIQodVVNBR0VfTUVUUklDX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1VU0FHRV9NRVRSSUNfS0lORF9JTlBVVF9UT0tFThABEiIKHlVTQUdFX01FVFJJQ19LSU5EX09VVFBVVF9UT0tFThACEigKJFVTQUdFX01FVFJJQ19LSU5EX0NBQ0hFRF9JTlBVVF9UT0tFThADEh8KG1VTQUdFX01FVFJJQ19LSU5EX1RPT0xfQ0FMTBAEEiMKH1VTQUdFX01FVFJJQ19LSU5EX1JVTk5FUl9TRUNPTkQQBRInCiNVU0FHRV9NRVRSSUNfS0lORF9TVE9SQUdFX0JZVEVfSE9VUhAGEiIKHlVTQUdFX01FVFJJQ19LSU5EX05FVFdPUktfQllURRAHEhwKGFVTQUdFX01FVFJJQ19LSU5EX0NVU1RPTRAIKuADChZBdHRyaWJ1dGlvblN1YmplY3RLaW5kEigKJEFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9VTlNQRUNJRklFRBAAEiMKH0FUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9URU5BTlQQARImCiJBVFRSSUJVVElPTl9TVUJKRUNUX0tJTkRfUFJJTkNJUEFMEAISKgomQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX0FDVElPTl9JTlRFTlQQAxImCiJBVFRSSUJVVElPTl9TVUJKRUNUX0tJTkRfV09SS19JVEVNEAQSLQopQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX0FSVElGQUNUX1ZFUlNJT04QBRIlCiFBVFRSSUJVVElPTl9TVUJKRUNUX0tJTkRfUkVTT1VSQ0UQBhInCiNBVFRSSUJVVElPTl9TVUJKRUNUX0tJTkRfVFJBQ0VfU1BBThAHEigKJEFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9VU0FHRV9FTlRSWRAIEigKJEFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9TUEVORF9FTlRSWRAJEigKJEFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9DT1NUX0NFTlRFUhAKKnkKEENhcGFiaWxpdHlTdGF0dXMSIQodQ0FQQUJJTElUWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtDQVBBQklMSVRZX1NUQVRVU19BVkFJTEFCTEUQARIhCh1DQVBBQklMSVRZX1NUQVRVU19VTkFWQUlMQUJMRRACMvcHCg9QbGF0Zm9ybVNlcnZpY2USgAEKDEdldEJvb3RzdHJhcBIgLnBsYXRmb3JtLnYxLkdldEJvb3RzdHJhcFJlcXVlc3QaIS5wbGF0Zm9ybS52MS5HZXRCb290c3RyYXBSZXNwb25zZSIryvMYDXBsYXRmb3JtOnJlYWTS8xgSc2NvcGUud29ya3NwYWNlX2lk2PMYARKDAQoKQ3JlYXRlV29yaxIeLnBsYXRmb3JtLnYxLkNyZWF0ZVdvcmtSZXF1ZXN0Gh8ucGxhdGZvcm0udjEuQ3JlYXRlV29ya1Jlc3BvbnNlIjTK8xgOcGxhdGZvcm06d3JpdGXS8xgaY29udGV4dC5zY29wZS53b3Jrc3BhY2VfaWTY8xgCEowBCg1Qcm9wb3NlQWN0aW9uEiEucGxhdGZvcm0udjEuUHJvcG9zZUFjdGlvblJlcXVlc3QaIi5wbGF0Zm9ybS52MS5Qcm9wb3NlQWN0aW9uUmVzcG9uc2UiNMrzGA5wbGF0Zm9ybTp3cml0ZdLzGBpjb250ZXh0LnNjb3BlLndvcmtzcGFjZV9pZNjzGAMSjwEKDkNyZWF0ZUFydGlmYWN0EiIucGxhdGZvcm0udjEuQ3JlYXRlQXJ0aWZhY3RSZXF1ZXN0GiMucGxhdGZvcm0udjEuQ3JlYXRlQXJ0aWZhY3RSZXNwb25zZSI0yvMYDnBsYXRmb3JtOndyaXRl0vMYGmNvbnRleHQuc2NvcGUud29ya3NwYWNlX2lk2PMYAhKPAQoOUmVjb3JkRXZpZGVuY2USIi5wbGF0Zm9ybS52MS5SZWNvcmRFdmlkZW5jZVJlcXVlc3QaIy5wbGF0Zm9ybS52MS5SZWNvcmRFdmlkZW5jZVJlc3BvbnNlIjTK8xgOcGxhdGZvcm06d3JpdGXS8xgaY29udGV4dC5zY29wZS53b3Jrc3BhY2VfaWTY8xgCEoYBCgtSZWNvcmRTY29yZRIfLnBsYXRmb3JtLnYxLlJlY29yZFNjb3JlUmVxdWVzdBogLnBsYXRmb3JtLnYxLlJlY29yZFNjb3JlUmVzcG9uc2UiNMrzGA5wbGF0Zm9ybTp3cml0ZdLzGBpjb250ZXh0LnNjb3BlLndvcmtzcGFjZV9pZNjzGAISngEKE0FwcGx5UmVjb21tZW5kYXRpb24SJy5wbGF0Zm9ybS52MS5BcHBseVJlY29tbWVuZGF0aW9uUmVxdWVzdBooLnBsYXRmb3JtLnYxLkFwcGx5UmVjb21tZW5kYXRpb25SZXNwb25zZSI0yvMYDnBsYXRmb3JtOndyaXRl0vMYGmNvbnRleHQuc2NvcGUud29ya3NwYWNlX2lk2PMYA0I7WjlnaXRodWIuY29tL2V2YWxvcHMvcGxhdGZvcm0vZ2VuL2dvL3BsYXRmb3JtL3YxO3BsYXRmb3JtdjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_authz, file_google_protobuf_struct, file_google_protobuf_timestamp]); + fileDesc("ChpwbGF0Zm9ybS92MS9wbGF0Zm9ybS5wcm90bxILcGxhdGZvcm0udjEidAoLVGVuYW50U2NvcGUSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgCIAEoCUIHukgEcgIQARIPCgd0ZWFtX2lkGAMgASgJEhMKC2Vudmlyb25tZW50GAQgASgJInQKCVByaW5jaXBhbBIdCgxwcmluY2lwYWxfaWQYASABKAlCB7pIBHICEAESMgoEa2luZBgCIAEoDjIaLnBsYXRmb3JtLnYxLlByaW5jaXBhbEtpbmRCCLpIBYIBAhABEhQKDGRpc3BsYXlfbmFtZRgDIAEoCSJOCgVBY3RvchIxCglwcmluY2lwYWwYASABKAsyFi5wbGF0Zm9ybS52MS5QcmluY2lwYWxCBrpIA8gBARISCgpzZXNzaW9uX2lkGAIgASgJIkQKCVBvbGljeVJlZhIaCglwb2xpY3lfaWQYASABKAlCB7pIBHICEAESGwoKdmVyc2lvbl9pZBgCIAEoCUIHukgEcgIQASLBAQoGUG9saWN5EhoKCXBvbGljeV9pZBgBIAEoCUIHukgEcgIQARIvCgVzY29wZRgCIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESLwoEa2luZBgDIAEoDjIXLnBsYXRmb3JtLnYxLlBvbGljeUtpbmRCCLpIBYIBAhABEhUKBG5hbWUYBCABKAlCB7pIBHICEAESIgoRYWN0aXZlX3ZlcnNpb25faWQYBSABKAlCB7pIBHICEAEivwEKDVBvbGljeVZlcnNpb24SGwoKdmVyc2lvbl9pZBgBIAEoCUIHukgEcgIQARIaCglwb2xpY3lfaWQYAiABKAlCB7pIBHICEAESJAoTYXJ0aWZhY3RfdmVyc2lvbl9pZBgDIAEoCUIHukgEcgIQARIyCgpjcmVhdGVkX2J5GAQgASgLMhYucGxhdGZvcm0udjEuUHJpbmNpcGFsQga6SAPIAQESGwoKbGluZWFnZV9pZBgFIAEoCUIHukgEcgIQASKMAgoRQXV0aG9yaXR5RGVjaXNpb24SHAoLZGVjaXNpb25faWQYASABKAlCB7pIBHICEAESOgoEa2luZBgCIAEoDjIiLnBsYXRmb3JtLnYxLkF1dGhvcml0eURlY2lzaW9uS2luZEIIukgFggECEAESKwoLcG9saWN5X3JlZnMYAyADKAsyFi5wbGF0Zm9ybS52MS5Qb2xpY3lSZWYSDwoHcmVhc29ucxgEIAMoCRIbChNhcHByb3ZhbF9yZXF1ZXN0X2lkGAUgASgJEhAKCGdyYW50X2lkGAYgASgJEjAKDGV2YWx1YXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi4QIKEE9wZXJhdGlvbkNvbnRleHQSLwoFc2NvcGUYASABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEikKBWFjdG9yGAIgASgLMhIucGxhdGZvcm0udjEuQWN0b3JCBrpIA8gBARI5CglhdXRob3JpdHkYAyABKAsyHi5wbGF0Zm9ybS52MS5BdXRob3JpdHlEZWNpc2lvbkIGukgDyAEBEiAKD2lkZW1wb3RlbmN5X2tleRgEIAEoCUIHukgEcgIQARIbCgpsaW5lYWdlX2lkGAUgASgJQge6SARyAhABEhsKCnJlcXVlc3RfaWQYBiABKAlCB7pIBHICEAESLwoDbm93GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEikKCGV2aWRlbmNlGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK1AwoPT3BlcmF0aW9uUmVjb3JkEh0KDG9wZXJhdGlvbl9pZBgBIAEoCUIHukgEcgIQARIvCgVzY29wZRgCIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESKQoFYWN0b3IYAyABKAsyEi5wbGF0Zm9ybS52MS5BY3RvckIGukgDyAEBEjkKCWF1dGhvcml0eRgEIAEoCzIeLnBsYXRmb3JtLnYxLkF1dGhvcml0eURlY2lzaW9uQga6SAPIAQESIAoPaWRlbXBvdGVuY3lfa2V5GAUgASgJQge6SARyAhABEhsKCmxpbmVhZ2VfaWQYBiABKAlCB7pIBHICEAESGwoKcmVxdWVzdF9pZBgHIAEoCUIHukgEcgIQARI3CgtyZWNvcmRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBrpIA8gBARIfCg5vcGVyYXRpb25fdHlwZRgJIAEoCUIHukgEcgIQARIbCgpvd25lcl90eXBlGAogASgJQge6SARyAhABEhkKCG93bmVyX2lkGAsgASgJQge6SARyAhABIncKDkV2YWxBc3NpZ25tZW50EhoKCWNvaG9ydF9pZBgBIAEoCUIHukgEcgIQARIdCgxjYW5kaWRhdGVfaWQYAiABKAlCB7pIBHICEAESEwoLYmFzZWxpbmVfaWQYAyABKAkSFQoNYXNzaWdubWVudF9pZBgEIAEoCSKJAgoLTmV3V29ya0l0ZW0SLQoEa2luZBgBIAEoDjIVLnBsYXRmb3JtLnYxLldvcmtLaW5kQgi6SAWCAQIQARIWCgV0aXRsZRgCIAEoCUIHukgEcgIQARIWCg5wYXJlbnRfd29ya19pZBgDIAEoCRIpCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoPZXZhbF9hc3NpZ25tZW50GAUgASgLMhsucGxhdGZvcm0udjEuRXZhbEFzc2lnbm1lbnQSOgoQcmVtZWRpYXRpb25fcGxhbhgGIAEoCzIgLnBsYXRmb3JtLnYxLldvcmtSZW1lZGlhdGlvblBsYW4i0wMKCFdvcmtJdGVtEhgKB3dvcmtfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEi0KBGtpbmQYAyABKA4yFS5wbGF0Zm9ybS52MS5Xb3JrS2luZEIIukgFggECEAESLwoFc3RhdGUYBCABKA4yFi5wbGF0Zm9ybS52MS5Xb3JrU3RhdGVCCLpIBYIBAhABEhYKBXRpdGxlGAUgASgJQge6SARyAhABEhYKDnBhcmVudF93b3JrX2lkGAYgASgJEjIKCmNyZWF0ZWRfYnkYByABKAsyFi5wbGF0Zm9ybS52MS5QcmluY2lwYWxCBrpIA8gBARIbCgpsaW5lYWdlX2lkGAggASgJQge6SARyAhABEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cg9ldmFsX2Fzc2lnbm1lbnQYCiABKAsyGy5wbGF0Zm9ybS52MS5FdmFsQXNzaWdubWVudBI6ChByZW1lZGlhdGlvbl9wbGFuGAsgASgLMiAucGxhdGZvcm0udjEuV29ya1JlbWVkaWF0aW9uUGxhbiKMAQoLUmVzb3VyY2VSZWYSHAoLcmVzb3VyY2VfaWQYASABKAlCB7pIBHICEAESMQoEa2luZBgCIAEoDjIZLnBsYXRmb3JtLnYxLlJlc291cmNlS2luZEIIukgFggECEAESEgoKdmVyc2lvbl9pZBgDIAEoCRIYCgd2ZXJzaW9uGAQgASgFQge6SAQaAigAItEBChdXb3JrUmVtZWRpYXRpb25SZXNvdXJjZRIcCgtwcm92aWRlcl9pZBgBIAEoCUIHukgEcgIQARIeCg1jb25uZWN0aW9uX2lkGAIgASgJQge6SARyAhABEiMKEnN0YWJsZV9yZXNvdXJjZV9pZBgDIAEoCUIHukgEcgIQARIeCg1yZXNvdXJjZV9raW5kGAQgASgJQge6SARyAhABEjMKEXBsYXRmb3JtX3Jlc291cmNlGAUgASgLMhgucGxhdGZvcm0udjEuUmVzb3VyY2VSZWYilgMKFVdvcmtSZW1lZGlhdGlvbkFjdGlvbhIaCglhY3Rpb25faWQYASABKAlCB7pIBHICEAESHwoOY2F0YWxvZ19kaWdlc3QYAiABKAlCB7pIBHICEAESHQoMaW5wdXRfZGlnZXN0GAMgASgJQge6SARyAhABEjwKBnRhcmdldBgEIAEoCzIkLnBsYXRmb3JtLnYxLldvcmtSZW1lZGlhdGlvblJlc291cmNlQga6SAPIAQESNAoJcmlza190aWVyGAUgASgOMhUucGxhdGZvcm0udjEuUmlza1RpZXJCCrpIB4IBBBABIAASGQoRYXBwcm92YWxfcmVxdWlyZWQYBiABKAgSFwoPcmVxdWlyZWRfc2NvcGVzGAcgAygJEiAKD2lkZW1wb3RlbmN5X2tleRgIIAEoCUIHukgEcgIQARIZChFwb3N0Y29uZGl0aW9uX2lkcxgJIAMoCRI8ChJpbnB1dF9hcnRpZmFjdF9yZWYYCiABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZkIGukgDyAEBIssCChxXb3JrUmVtZWRpYXRpb25Qb3N0Y29uZGl0aW9uEiEKEHBvc3Rjb25kaXRpb25faWQYASABKAlCB7pIBHICEAESPAoGdGFyZ2V0GAIgASgLMiQucGxhdGZvcm0udjEuV29ya1JlbWVkaWF0aW9uUmVzb3VyY2VCBrpIA8gBARIjChJvYnNlcnZlcl9hY3Rpb25faWQYAyABKAlCB7pIBHICEAESJgoVZXhwZWN0ZWRfc3RhdGVfZGlnZXN0GAQgASgJQge6SARyAhABEiAKD21heF9hZ2Vfc2Vjb25kcxgFIAEoDUIHukgEKgIgABJbChVyZXF1aXJlZF9pbmRlcGVuZGVuY2UYBiABKA4yMC5wbGF0Zm9ybS52MS5Xb3JrUmVtZWRpYXRpb25FdmlkZW5jZUluZGVwZW5kZW5jZUIKukgHggEEEAEgACLCBAoTV29ya1JlbWVkaWF0aW9uUGxhbhIfCg5zY2hlbWFfdmVyc2lvbhgBIAEoDUIHukgEKgIgABIcCgtwbGFuX2RpZ2VzdBgCIAEoCUIHukgEcgIQARIvCgVzY29wZRgDIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESIgoRc291cmNlX2ZpbmRpbmdfaWQYBCABKAlCB7pIBHICEAESLwoPc291cmNlX2V2aWRlbmNlGAUgAygLMhYucGxhdGZvcm0udjEuUmVjb3JkUmVmEkAKEmFmZmVjdGVkX3Jlc291cmNlcxgGIAMoCzIkLnBsYXRmb3JtLnYxLldvcmtSZW1lZGlhdGlvblJlc291cmNlEkEKDnBvc3Rjb25kaXRpb25zGAcgAygLMikucGxhdGZvcm0udjEuV29ya1JlbWVkaWF0aW9uUG9zdGNvbmRpdGlvbhIzCgdhY3Rpb25zGAggAygLMiIucGxhdGZvcm0udjEuV29ya1JlbWVkaWF0aW9uQWN0aW9uEk4KDmNsYXNzaWZpY2F0aW9uGAkgASgOMioucGxhdGZvcm0udjEuV29ya1JlbWVkaWF0aW9uQ2xhc3NpZmljYXRpb25CCrpIB4IBBBABIAASGwoKbGluZWFnZV9pZBgKIAEoCUIHukgEcgIQARIgCg9pZGVtcG90ZW5jeV9rZXkYCyABKAlCB7pIBHICEAESHQoVbm9uX2V4ZWN1dGFibGVfcmVhc29uGAwgASgJImwKCVJlY29yZFJlZhIxCgRraW5kGAEgASgOMhcucGxhdGZvcm0udjEuUmVjb3JkS2luZEIKukgHggEEEAEgABIaCglyZWNvcmRfaWQYAiABKAlCB7pIBHICEAESEAoIcmV2aXNpb24YAyABKAkiqgUKDEFjdGlvbkludGVudBIhChBhY3Rpb25faW50ZW50X2lkGAEgASgJQge6SARyAhABEi8KBXNjb3BlGAIgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARIzCgtwcm9wb3NlZF9ieRgDIAEoCzIWLnBsYXRmb3JtLnYxLlByaW5jaXBhbEIGukgDyAEBEhwKC2FjdGlvbl90eXBlGAQgASgJQge6SARyAhABEjEKD3RhcmdldF9yZXNvdXJjZRgFIAEoCzIYLnBsYXRmb3JtLnYxLlJlc291cmNlUmVmEh0KDGlucHV0X2RpZ2VzdBgGIAEoCUIHukgEcgIQARIyCglyaXNrX3RpZXIYByABKA4yFS5wbGF0Zm9ybS52MS5SaXNrVGllckIIukgFggECEAESQgoSYXV0aG9yaXR5X2RlY2lzaW9uGAggASgLMh4ucGxhdGZvcm0udjEuQXV0aG9yaXR5RGVjaXNpb25CBrpIA8gBARI8Cg5hcHByb3ZhbF9zdGF0ZRgJIAEoDjIaLnBsYXRmb3JtLnYxLkFwcHJvdmFsU3RhdGVCCLpIBYIBAhABEkQKD2V4ZWN1dGlvbl9zdGF0ZRgKIAEoDjIhLnBsYXRmb3JtLnYxLkFjdGlvbkV4ZWN1dGlvblN0YXRlQgi6SAWCAQIQARIbCgpsaW5lYWdlX2lkGAsgASgJQge6SARyAhABEikKCGV2aWRlbmNlGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgZyZXN1bHQYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKD2V2YWxfYXNzaWdubWVudBgOIAEoCzIbLnBsYXRmb3JtLnYxLkV2YWxBc3NpZ25tZW50IoYCChJOZXdBcnRpZmFjdFZlcnNpb24SHAoLYXJ0aWZhY3RfaWQYASABKAlCB7pIBHICEAESMQoEa2luZBgCIAEoDjIZLnBsYXRmb3JtLnYxLkFydGlmYWN0S2luZEIIukgFggECEAESFgoFbGFiZWwYAyABKAlCB7pIBHICEAESHAoLY29udGVudF9yZWYYBCABKAlCB7pIBHICEAESDgoGbGFiZWxzGAUgAygJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgxyZXNvdXJjZV9yZWYYByABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZiKyAgoIQXJ0aWZhY3QSHAoLYXJ0aWZhY3RfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEjEKBGtpbmQYAyABKA4yGS5wbGF0Zm9ybS52MS5BcnRpZmFjdEtpbmRCCLpIBYIBAhABEjMKBXN0YXRlGAQgASgOMhoucGxhdGZvcm0udjEuQXJ0aWZhY3RTdGF0ZUIIukgFggECEAESIgoRbGF0ZXN0X3ZlcnNpb25faWQYBSABKAlCB7pIBHICEAESGwoKbGluZWFnZV9pZBgGIAEoCUIHukgEcgIQARIuCgxyZXNvdXJjZV9yZWYYByABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZiLHAgoPQXJ0aWZhY3RWZXJzaW9uEiQKE2FydGlmYWN0X3ZlcnNpb25faWQYASABKAlCB7pIBHICEAESHAoLYXJ0aWZhY3RfaWQYAiABKAlCB7pIBHICEAESFgoFbGFiZWwYAyABKAlCB7pIBHICEAESHAoLY29udGVudF9yZWYYBCABKAlCB7pIBHICEAESMgoKY3JlYXRlZF9ieRgFIAEoCzIWLnBsYXRmb3JtLnYxLlByaW5jaXBhbEIGukgDyAEBEhsKCmxpbmVhZ2VfaWQYBiABKAlCB7pIBHICEAESDgoGbGFiZWxzGAcgAygJEikKCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgxyZXNvdXJjZV9yZWYYCSABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZiL2AQoORXZpZGVuY2VSZWNvcmQSHAoLZXZpZGVuY2VfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEjEKBGtpbmQYAyABKA4yGS5wbGF0Zm9ybS52MS5FdmlkZW5jZUtpbmRCCLpIBYIBAhABEhsKCnN1YmplY3RfaWQYBCABKAlCB7pIBHICEAESGwoKbGluZWFnZV9pZBgFIAEoCUIHukgEcgIQARIoCgdwYXlsb2FkGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKNAwoFU2NvcmUSGQoIc2NvcmVfaWQYASABKAlCB7pIBHICEAESLwoFc2NvcGUYAiABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEhsKCnN1YmplY3RfaWQYAyABKAlCB7pIBHICEAESGgoJY3JpdGVyaW9uGAQgASgJQge6SARyAhABEg0KBXZhbHVlGAUgASgBEhcKBnNjb3JlchgGIAEoCUIHukgEcgIQARIOCgZ0YXJnZXQYByABKAkSNAoPZXZhbF9hc3NpZ25tZW50GAggASgLMhsucGxhdGZvcm0udjEuRXZhbEFzc2lnbm1lbnQSEwoLZXZpZGVuY2VfaWQYCSABKAkSGwoKbGluZWFnZV9pZBgKIAEoCUIHukgEcgIQARI1CglzY29yZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQga6SAPIAQESKAoHcGF5bG9hZBgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi6AMKDlJlY29tbWVuZGF0aW9uEiIKEXJlY29tbWVuZGF0aW9uX2lkGAEgASgJQge6SARyAhABEi8KBXNjb3BlGAIgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARI3CgRraW5kGAMgASgOMh8ucGxhdGZvcm0udjEuUmVjb21tZW5kYXRpb25LaW5kQgi6SAWCAQIQARI5CgVzdGF0ZRgEIAEoDjIgLnBsYXRmb3JtLnYxLlJlY29tbWVuZGF0aW9uU3RhdGVCCLpIBYIBAhABEhsKCnN1YmplY3RfaWQYBSABKAlCB7pIBHICEAESHAoLYWN0aW9uX3R5cGUYBiABKAlCB7pIBHICEAESNAoPZXZhbF9hc3NpZ25tZW50GAcgASgLMhsucGxhdGZvcm0udjEuRXZhbEFzc2lnbm1lbnQSEAoIc2NvcmVfaWQYCCABKAkSGAoQYWN0aW9uX2ludGVudF9pZBgJIAEoCRIbCgpsaW5lYWdlX2lkGAogASgJQge6SARyAhABEioKCXJhdGlvbmFsZRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJwoGcmVzdWx0GAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKUAgoLRG9tYWluRXZlbnQSGQoIZXZlbnRfaWQYASABKAlCB7pIBHICEAESHQoMb3BlcmF0aW9uX2lkGAIgASgJQge6SARyAhABEi8KBXNjb3BlGAMgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARIbCgpvd25lcl90eXBlGAQgASgJQge6SARyAhABEhkKCG93bmVyX2lkGAUgASgJQge6SARyAhABEhsKCmV2ZW50X3R5cGUYBiABKAlCB7pIBHICEAESGwoKbGluZWFnZV9pZBgHIAEoCUIHukgEcgIQARIoCgdwYXlsb2FkGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLeAQoNT3V0Ym94TWVzc2FnZRIiChFvdXRib3hfbWVzc2FnZV9pZBgBIAEoCUIHukgEcgIQARIdCgxvcGVyYXRpb25faWQYAiABKAlCB7pIBHICEAESIAoPZG9tYWluX2V2ZW50X2lkGAMgASgJQge6SARyAhABEhYKBXRvcGljGAQgASgJQge6SARyAhABEjMKBnN0YXR1cxgFIAEoDjIZLnBsYXRmb3JtLnYxLk91dGJveFN0YXR1c0IIukgFggECEAESGwoKbGluZWFnZV9pZBgGIAEoCUIHukgEcgIQASLYAQoQT3BlcmF0aW9uUmVjZWlwdBI+ChBvcGVyYXRpb25fcmVjb3JkGAEgASgLMhwucGxhdGZvcm0udjEuT3BlcmF0aW9uUmVjb3JkQga6SAPIAQESNgoMZG9tYWluX2V2ZW50GAIgASgLMhgucGxhdGZvcm0udjEuRG9tYWluRXZlbnRCBrpIA8gBARI6Cg5vdXRib3hfbWVzc2FnZRgDIAEoCzIaLnBsYXRmb3JtLnYxLk91dGJveE1lc3NhZ2VCBrpIA8gBARIQCghyZXBsYXllZBgEIAEoCCLXBAoQVXNhZ2VMZWRnZXJFbnRyeRIfCg51c2FnZV9lbnRyeV9pZBgBIAEoCUIHukgEcgIQARIdCgxvcGVyYXRpb25faWQYAiABKAlCB7pIBHICEAESLwoFc2NvcGUYAyABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBEjEKCXByaW5jaXBhbBgEIAEoCzIWLnBsYXRmb3JtLnYxLlByaW5jaXBhbEIGukgDyAEBEhgKEGFjdGlvbl9pbnRlbnRfaWQYBSABKAkSDwoHd29ya19pZBgGIAEoCRIbChNhcnRpZmFjdF92ZXJzaW9uX2lkGAcgASgJEhAKCHRyYWNlX2lkGAggASgJEg8KB3NwYW5faWQYCSABKAkSEAoIcHJvdmlkZXIYCiABKAkSKgoIcmVzb3VyY2UYCyABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZhI7CgttZXRyaWNfa2luZBgMIAEoDjIcLnBsYXRmb3JtLnYxLlVzYWdlTWV0cmljS2luZEIIukgFggECEAESIQoQcXVhbnRpdHlfZGVjaW1hbBgNIAEoCUIHukgEcgIQARIVCgR1bml0GA4gASgJQge6SARyAhABEjcKC29ic2VydmVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEhsKCmxpbmVhZ2VfaWQYECABKAlCB7pIBHICEAESKQoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrUDChBTcGVuZExlZGdlckVudHJ5Eh8KDnNwZW5kX2VudHJ5X2lkGAEgASgJQge6SARyAhABEh0KDG9wZXJhdGlvbl9pZBgCIAEoCUIHukgEcgIQARIvCgVzY29wZRgDIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESFgoOdXNhZ2VfZW50cnlfaWQYBCABKAkSGAoQYWN0aW9uX2ludGVudF9pZBgFIAEoCRIVCg1hbW91bnRfbWljcm9zGAYgASgDEhoKCGN1cnJlbmN5GAcgASgJQgi6SAVyA5gBAxIyChJwcmljaW5nX3BvbGljeV9yZWYYCCABKAsyFi5wbGF0Zm9ybS52MS5Qb2xpY3lSZWYSNwoLaW5jdXJyZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQga6SAPIAQESGwoKbGluZWFnZV9pZBgKIAEoCUIHukgEcgIQARIWCg5hbGxvY2F0aW9uX2tleRgLIAEoCRIpCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiqwMKD0F0dHJpYnV0aW9uRWRnZRIkChNhdHRyaWJ1dGlvbl9lZGdlX2lkGAEgASgJQge6SARyAhABEh0KDG9wZXJhdGlvbl9pZBgCIAEoCUIHukgEcgIQARIvCgVzY29wZRgDIAEoCzIYLnBsYXRmb3JtLnYxLlRlbmFudFNjb3BlQga6SAPIAQESQgoLc291cmNlX2tpbmQYBCABKA4yIy5wbGF0Zm9ybS52MS5BdHRyaWJ1dGlvblN1YmplY3RLaW5kQgi6SAWCAQIQARIaCglzb3VyY2VfaWQYBSABKAlCB7pIBHICEAESQgoLdGFyZ2V0X2tpbmQYBiABKA4yIy5wbGF0Zm9ybS52MS5BdHRyaWJ1dGlvblN1YmplY3RLaW5kQgi6SAWCAQIQARIaCgl0YXJnZXRfaWQYByABKAlCB7pIBHICEAESGQoIcmVsYXRpb24YCCABKAlCB7pIBHICEAESFQoNd2VpZ2h0X21pY3JvcxgJIAEoAxIbCgpsaW5lYWdlX2lkGAogASgJQge6SARyAhABEhMKC2V2aWRlbmNlX2lkGAsgASgJIkYKE0dldEJvb3RzdHJhcFJlcXVlc3QSLwoFc2NvcGUYASABKAsyGC5wbGF0Zm9ybS52MS5UZW5hbnRTY29wZUIGukgDyAEBIn4KFEdldEJvb3RzdHJhcFJlc3BvbnNlEi8KBXNjb3BlGAEgASgLMhgucGxhdGZvcm0udjEuVGVuYW50U2NvcGVCBrpIA8gBARI1CgxjYXBhYmlsaXRpZXMYAiADKAsyHy5wbGF0Zm9ybS52MS5QbGF0Zm9ybUNhcGFiaWxpdHkirgEKElBsYXRmb3JtQ2FwYWJpbGl0eRIVCgRuYW1lGAEgASgJQge6SARyAhABEjcKBnN0YXR1cxgCIAEoDjIdLnBsYXRmb3JtLnYxLkNhcGFiaWxpdHlTdGF0dXNCCLpIBYIBAhABEg4KBnJlYXNvbhgDIAEoCRI4CghmZWF0dXJlcxgEIAMoCzImLnBsYXRmb3JtLnYxLlBsYXRmb3JtQ2FwYWJpbGl0eUZlYXR1cmUiZwoZUGxhdGZvcm1DYXBhYmlsaXR5RmVhdHVyZRIaCglvcGVyYXRpb24YASABKAlCB7pIBHICEAESFwoGbWV0aG9kGAIgASgJQge6SARyAhABEhUKBHBhdGgYAyABKAlCB7pIBHICEAEiewoRQ3JlYXRlV29ya1JlcXVlc3QSNgoHY29udGV4dBgBIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvbkNvbnRleHRCBrpIA8gBARIuCgR3b3JrGAIgASgLMhgucGxhdGZvcm0udjEuTmV3V29ya0l0ZW1CBrpIA8gBASJ5ChJDcmVhdGVXb3JrUmVzcG9uc2USKwoEd29yaxgBIAEoCzIVLnBsYXRmb3JtLnYxLldvcmtJdGVtQga6SAPIAQESNgoHcmVjZWlwdBgCIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvblJlY2VpcHRCBrpIA8gBASKdAgoUUHJvcG9zZUFjdGlvblJlcXVlc3QSNgoHY29udGV4dBgBIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvbkNvbnRleHRCBrpIA8gBARIcCgthY3Rpb25fdHlwZRgCIAEoCUIHukgEcgIQARIxCg90YXJnZXRfcmVzb3VyY2UYAyABKAsyGC5wbGF0Zm9ybS52MS5SZXNvdXJjZVJlZhIdCgxpbnB1dF9kaWdlc3QYBCABKAlCB7pIBHICEAESMgoJcmlza190aWVyGAUgASgOMhUucGxhdGZvcm0udjEuUmlza1RpZXJCCLpIBYIBAhABEikKCGV2aWRlbmNlGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKJAQoVUHJvcG9zZUFjdGlvblJlc3BvbnNlEjgKDWFjdGlvbl9pbnRlbnQYASABKAsyGS5wbGF0Zm9ybS52MS5BY3Rpb25JbnRlbnRCBrpIA8gBARI2CgdyZWNlaXB0GAIgASgLMh0ucGxhdGZvcm0udjEuT3BlcmF0aW9uUmVjZWlwdEIGukgDyAEBIooBChVDcmVhdGVBcnRpZmFjdFJlcXVlc3QSNgoHY29udGV4dBgBIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvbkNvbnRleHRCBrpIA8gBARI5CghhcnRpZmFjdBgCIAEoCzIfLnBsYXRmb3JtLnYxLk5ld0FydGlmYWN0VmVyc2lvbkIGukgDyAEBIrgBChZDcmVhdGVBcnRpZmFjdFJlc3BvbnNlEi8KCGFydGlmYWN0GAEgASgLMhUucGxhdGZvcm0udjEuQXJ0aWZhY3RCBrpIA8gBARI1Cgd2ZXJzaW9uGAIgASgLMhwucGxhdGZvcm0udjEuQXJ0aWZhY3RWZXJzaW9uQga6SAPIAQESNgoHcmVjZWlwdBgDIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvblJlY2VpcHRCBrpIA8gBASLJAQoVUmVjb3JkRXZpZGVuY2VSZXF1ZXN0EjYKB2NvbnRleHQYASABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25Db250ZXh0Qga6SAPIAQESMQoEa2luZBgCIAEoDjIZLnBsYXRmb3JtLnYxLkV2aWRlbmNlS2luZEIIukgFggECEAESGwoKc3ViamVjdF9pZBgDIAEoCUIHukgEcgIQARIoCgdwYXlsb2FkGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKHAQoWUmVjb3JkRXZpZGVuY2VSZXNwb25zZRI1CghldmlkZW5jZRgBIAEoCzIbLnBsYXRmb3JtLnYxLkV2aWRlbmNlUmVjb3JkQga6SAPIAQESNgoHcmVjZWlwdBgCIAEoCzIdLnBsYXRmb3JtLnYxLk9wZXJhdGlvblJlY2VpcHRCBrpIA8gBASKdAgoSUmVjb3JkU2NvcmVSZXF1ZXN0EjYKB2NvbnRleHQYASABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25Db250ZXh0Qga6SAPIAQESGwoKc3ViamVjdF9pZBgCIAEoCUIHukgEcgIQARIaCgljcml0ZXJpb24YAyABKAlCB7pIBHICEAESDQoFdmFsdWUYBCABKAESFwoGc2NvcmVyGAUgASgJQge6SARyAhABEg4KBnRhcmdldBgGIAEoCRI0Cg9ldmFsX2Fzc2lnbm1lbnQYByABKAsyGy5wbGF0Zm9ybS52MS5FdmFsQXNzaWdubWVudBIoCgdwYXlsb2FkGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKvAQoTUmVjb3JkU2NvcmVSZXNwb25zZRIpCgVzY29yZRgBIAEoCzISLnBsYXRmb3JtLnYxLlNjb3JlQga6SAPIAQESNQoIZXZpZGVuY2UYAiABKAsyGy5wbGF0Zm9ybS52MS5FdmlkZW5jZVJlY29yZEIGukgDyAEBEjYKB3JlY2VpcHQYAyABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25SZWNlaXB0Qga6SAPIAQEiwgMKGkFwcGx5UmVjb21tZW5kYXRpb25SZXF1ZXN0EjYKB2NvbnRleHQYASABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25Db250ZXh0Qga6SAPIAQESNwoEa2luZBgCIAEoDjIfLnBsYXRmb3JtLnYxLlJlY29tbWVuZGF0aW9uS2luZEIIukgFggECEAESGwoKc3ViamVjdF9pZBgDIAEoCUIHukgEcgIQARIcCgthY3Rpb25fdHlwZRgEIAEoCUIHukgEcgIQARIdCgxpbnB1dF9kaWdlc3QYBSABKAlCB7pIBHICEAESMgoJcmlza190aWVyGAYgASgOMhUucGxhdGZvcm0udjEuUmlza1RpZXJCCLpIBYIBAhABEjEKD3RhcmdldF9yZXNvdXJjZRgHIAEoCzIYLnBsYXRmb3JtLnYxLlJlc291cmNlUmVmEjQKD2V2YWxfYXNzaWdubWVudBgIIAEoCzIbLnBsYXRmb3JtLnYxLkV2YWxBc3NpZ25tZW50EhAKCHNjb3JlX2lkGAkgASgJEioKCXJhdGlvbmFsZRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QizAEKG0FwcGx5UmVjb21tZW5kYXRpb25SZXNwb25zZRI7Cg5yZWNvbW1lbmRhdGlvbhgBIAEoCzIbLnBsYXRmb3JtLnYxLlJlY29tbWVuZGF0aW9uQga6SAPIAQESOAoNYWN0aW9uX2ludGVudBgCIAEoCzIZLnBsYXRmb3JtLnYxLkFjdGlvbkludGVudEIGukgDyAEBEjYKB3JlY2VpcHQYAyABKAsyHS5wbGF0Zm9ybS52MS5PcGVyYXRpb25SZWNlaXB0Qga6SAPIAQEqvwEKDVByaW5jaXBhbEtpbmQSHgoaUFJJTkNJUEFMX0tJTkRfVU5TUEVDSUZJRUQQABIYChRQUklOQ0lQQUxfS0lORF9IVU1BThABEiIKHlBSSU5DSVBBTF9LSU5EX1NFUlZJQ0VfQUNDT1VOVBACEhgKFFBSSU5DSVBBTF9LSU5EX0FHRU5UEAMSGQoVUFJJTkNJUEFMX0tJTkRfREVWSUNFEAQSGwoXUFJJTkNJUEFMX0tJTkRfV09SS0xPQUQQBSq1AQoKUG9saWN5S2luZBIbChdQT0xJQ1lfS0lORF9VTlNQRUNJRklFRBAAEhkKFVBPTElDWV9LSU5EX0FVVEhPUklUWRABEhoKFlBPTElDWV9LSU5EX0NSRURFTlRJQUwQAhIfChtQT0xJQ1lfS0lORF9TT1VSQ0VfT0ZfVFJVVEgQAxIZChVQT0xJQ1lfS0lORF9MSUZFQ1lDTEUQBBIXChNQT0xJQ1lfS0lORF9CSUxMSU5HEAUqvgIKFUF1dGhvcml0eURlY2lzaW9uS2luZBInCiNBVVRIT1JJVFlfREVDSVNJT05fS0lORF9VTlNQRUNJRklFRBAAEiEKHUFVVEhPUklUWV9ERUNJU0lPTl9LSU5EX0FMTE9XEAESIAocQVVUSE9SSVRZX0RFQ0lTSU9OX0tJTkRfREVOWRACEiwKKEFVVEhPUklUWV9ERUNJU0lPTl9LSU5EX1JFUVVJUkVfQVBQUk9WQUwQAxItCilBVVRIT1JJVFlfREVDSVNJT05fS0lORF9BUFBST1ZBTF9SRVNPTFZFRBAEEikKJUFVVEhPUklUWV9ERUNJU0lPTl9LSU5EX0dSQU5UX0VYUElSRUQQBRIvCitBVVRIT1JJVFlfREVDSVNJT05fS0lORF9ERUxFR0FUSU9OX05BUlJPV0VEEAYqvwIKCFdvcmtLaW5kEhkKFVdPUktfS0lORF9VTlNQRUNJRklFRBAAEhcKE1dPUktfS0lORF9PQkpFQ1RJVkUQARIWChJXT1JLX0tJTkRfV09SS0ZMT1cQAhIXChNXT1JLX0tJTkRfQUdFTlRfUlVOEAMSEgoOV09SS19LSU5EX1NURVAQBBISCg5XT1JLX0tJTkRfV0FJVBAFEhMKD1dPUktfS0lORF9SRVRSWRAGEhwKGFdPUktfS0lORF9UT09MX0VYRUNVVElPThAHEhwKGFdPUktfS0lORF9SVU5ORVJfU0VTU0lPThAIEhYKEldPUktfS0lORF9FVkFMX1JVThAJEh4KGldPUktfS0lORF9DT01QVVRFUl9NSVNTSU9OEAoSHQoZV09SS19LSU5EX0FSVElGQUNUX1JFTkRFUhALKtIBCglXb3JrU3RhdGUSGgoWV09SS19TVEFURV9VTlNQRUNJRklFRBAAEhcKE1dPUktfU1RBVEVfUFJPUE9TRUQQARIVChFXT1JLX1NUQVRFX1FVRVVFRBACEhYKEldPUktfU1RBVEVfUlVOTklORxADEhYKEldPUktfU1RBVEVfV0FJVElORxAEEhgKFFdPUktfU1RBVEVfU1VDQ0VFREVEEAUSFQoRV09SS19TVEFURV9GQUlMRUQQBhIYChRXT1JLX1NUQVRFX0NBTkNFTExFRBAHKq0DCgxSZXNvdXJjZUtpbmQSHQoZUkVTT1VSQ0VfS0lORF9VTlNQRUNJRklFRBAAEhcKE1JFU09VUkNFX0tJTkRfQUdFTlQQARIWChJSRVNPVVJDRV9LSU5EX1RPT0wQAhIWChJSRVNPVVJDRV9LSU5EX1JFUE8QAxIZChVSRVNPVVJDRV9LSU5EX0RBVEFTRVQQBBIaChZSRVNPVVJDRV9LSU5EX0RBVEFCQVNFEAUSHAoYUkVTT1VSQ0VfS0lORF9DUk1fT0JKRUNUEAYSHQoZUkVTT1VSQ0VfS0lORF9NT0RFTF9ST1VURRAHEhoKFlJFU09VUkNFX0tJTkRfRVhURVJOQUwQCBIcChhSRVNPVVJDRV9LSU5EX1ZGU19PQkpFQ1QQCRIkCiBSRVNPVVJDRV9LSU5EX1ZGU19PQkpFQ1RfVkVSU0lPThAKEhoKFlJFU09VUkNFX0tJTkRfQVJUSUZBQ1QQCxIiCh5SRVNPVVJDRV9LSU5EX0FSVElGQUNUX1ZFUlNJT04QDBIhCh1SRVNPVVJDRV9LSU5EX0dFTkVSQVRFRF9BU1NFVBANKpwCCh1Xb3JrUmVtZWRpYXRpb25DbGFzc2lmaWNhdGlvbhIvCitXT1JLX1JFTUVESUFUSU9OX0NMQVNTSUZJQ0FUSU9OX1VOU1BFQ0lGSUVEEAASMwovV09SS19SRU1FRElBVElPTl9DTEFTU0lGSUNBVElPTl9BVVRPX0VYRUNVVEFCTEUQARI3CjNXT1JLX1JFTUVESUFUSU9OX0NMQVNTSUZJQ0FUSU9OX0FQUFJPVkFMX0VYRUNVVEFCTEUQAhIvCitXT1JLX1JFTUVESUFUSU9OX0NMQVNTSUZJQ0FUSU9OX01BTlVBTF9XT1JLEAMSKwonV09SS19SRU1FRElBVElPTl9DTEFTU0lGSUNBVElPTl9CTE9DS0VEEAQq2wEKI1dvcmtSZW1lZGlhdGlvbkV2aWRlbmNlSW5kZXBlbmRlbmNlEjYKMldPUktfUkVNRURJQVRJT05fRVZJREVOQ0VfSU5ERVBFTkRFTkNFX1VOU1BFQ0lGSUVEEAASOAo0V09SS19SRU1FRElBVElPTl9FVklERU5DRV9JTkRFUEVOREVOQ0VfQUNUSU9OX09VVFBVVBABEkIKPldPUktfUkVNRURJQVRJT05fRVZJREVOQ0VfSU5ERVBFTkRFTkNFX0lOREVQRU5ERU5UX09CU0VSVkFUSU9OEAIqjAMKClJlY29yZEtpbmQSGwoXUkVDT1JEX0tJTkRfVU5TUEVDSUZJRUQQABITCg9SRUNPUkRfS0lORF9SVU4QARIZChVSRUNPUkRfS0lORF9NT0RFTF9SVU4QAhIeChpSRUNPUkRfS0lORF9UT09MX0VYRUNVVElPThADEh8KG1JFQ09SRF9LSU5EX1BPTElDWV9ERUNJU0lPThAEEhgKFFJFQ09SRF9LSU5EX0FQUFJPVkFMEAUSGgoWUkVDT1JEX0tJTkRfQ1JFREVOVElBTBAGEhkKFVJFQ09SRF9LSU5EX0NPTk5FQ1RPUhAHEiEKHVJFQ09SRF9LSU5EX0NPTk5FQ1RPUl9TRVNTSU9OEAgSGAoUUkVDT1JEX0tJTkRfQVJUSUZBQ1QQCRIVChFSRUNPUkRfS0lORF9VU0FHRRAKEhcKE1JFQ09SRF9LSU5EX1JFQ0VJUFQQCxIYChRSRUNPUkRfS0lORF9FVklERU5DRRAMEhgKFFJFQ09SRF9LSU5EX0VWQUxfUlVOEA0qegoIUmlza1RpZXISGQoVUklTS19USUVSX1VOU1BFQ0lGSUVEEAASEQoNUklTS19USUVSX0xPVxABEhQKEFJJU0tfVElFUl9NRURJVU0QAhISCg5SSVNLX1RJRVJfSElHSBADEhYKElJJU0tfVElFUl9DUklUSUNBTBAEKsEBCg1BcHByb3ZhbFN0YXRlEh4KGkFQUFJPVkFMX1NUQVRFX1VOU1BFQ0lGSUVEEAASHwobQVBQUk9WQUxfU1RBVEVfTk9UX1JFUVVJUkVEEAESGwoXQVBQUk9WQUxfU1RBVEVfUkVRVUlSRUQQAhIbChdBUFBST1ZBTF9TVEFURV9SRVNPTFZFRBADEhkKFUFQUFJPVkFMX1NUQVRFX0RFTklFRBAEEhoKFkFQUFJPVkFMX1NUQVRFX0VYUElSRUQQBSrBAgoUQWN0aW9uRXhlY3V0aW9uU3RhdGUSJgoiQUNUSU9OX0VYRUNVVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEiMKH0FDVElPTl9FWEVDVVRJT05fU1RBVEVfUFJPUE9TRUQQARIjCh9BQ1RJT05fRVhFQ1VUSU9OX1NUQVRFX0FQUFJPVkVEEAISIgoeQUNUSU9OX0VYRUNVVElPTl9TVEFURV9CTE9DS0VEEAMSJAogQUNUSU9OX0VYRUNVVElPTl9TVEFURV9FWEVDVVRJTkcQBBIkCiBBQ1RJT05fRVhFQ1VUSU9OX1NUQVRFX1NVQ0NFRURFRBAFEiEKHUFDVElPTl9FWEVDVVRJT05fU1RBVEVfRkFJTEVEEAYSJAogQUNUSU9OX0VYRUNVVElPTl9TVEFURV9DQU5DRUxMRUQQByq5AgoMQXJ0aWZhY3RLaW5kEh0KGUFSVElGQUNUX0tJTkRfVU5TUEVDSUZJRUQQABIYChRBUlRJRkFDVF9LSU5EX1BST01QVBABEhcKE0FSVElGQUNUX0tJTkRfU0tJTEwQAhIeChpBUlRJRkFDVF9LSU5EX0FHRU5UX0NPTkZJRxADEhwKGEFSVElGQUNUX0tJTkRfRVZBTF9TVUlURRAEEhoKFkFSVElGQUNUX0tJTkRfU0NFTkFSSU8QBRIgChxBUlRJRkFDVF9LSU5EX0dFTkVSQVRFRF9GSUxFEAYSHgoaQVJUSUZBQ1RfS0lORF9DT05URVhUX0lURU0QBxIcChhBUlRJRkFDVF9LSU5EX1ZGU19PQkpFQ1QQCBIdChlBUlRJRkFDVF9LSU5EX01PREVMX1JPVVRFEAkqoAEKDUFydGlmYWN0U3RhdGUSHgoaQVJUSUZBQ1RfU1RBVEVfVU5TUEVDSUZJRUQQABIYChRBUlRJRkFDVF9TVEFURV9EUkFGVBABEhkKFUFSVElGQUNUX1NUQVRFX0FDVElWRRACEh0KGUFSVElGQUNUX1NUQVRFX0RFUFJFQ0FURUQQAxIbChdBUlRJRkFDVF9TVEFURV9BUkNISVZFRBAEKvcBCgxFdmlkZW5jZUtpbmQSHQoZRVZJREVOQ0VfS0lORF9VTlNQRUNJRklFRBAAEh0KGUVWSURFTkNFX0tJTkRfQVVESVRfRVZFTlQQARIcChhFVklERU5DRV9LSU5EX1RSQUNFX1NQQU4QAhIXChNFVklERU5DRV9LSU5EX1VTQUdFEAMSHQoZRVZJREVOQ0VfS0lORF9BVFRFU1RBVElPThAEEh8KG0VWSURFTkNFX0tJTkRfUkVQTEFZX0JVTkRMRRAFEhkKFUVWSURFTkNFX0tJTkRfTElORUFHRRAGEhcKE0VWSURFTkNFX0tJTkRfU0NPUkUQByrGAQoSUmVjb21tZW5kYXRpb25LaW5kEiMKH1JFQ09NTUVOREFUSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIpCiVSRUNPTU1FTkRBVElPTl9LSU5EX1BST01PVEVfQ0FORElEQVRFEAESIAocUkVDT01NRU5EQVRJT05fS0lORF9ST0xMQkFDSxACEiAKHFJFQ09NTUVOREFUSU9OX0tJTkRfUkVXRUlHSFQQAxIcChhSRUNPTU1FTkRBVElPTl9LSU5EX0hPTEQQBCqjAQoTUmVjb21tZW5kYXRpb25TdGF0ZRIkCiBSRUNPTU1FTkRBVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEiEKHVJFQ09NTUVOREFUSU9OX1NUQVRFX1BST1BPU0VEEAESIAocUkVDT01NRU5EQVRJT05fU1RBVEVfQVBQTElFRBACEiEKHVJFQ09NTUVOREFUSU9OX1NUQVRFX1JFSkVDVEVEEAMqfwoMT3V0Ym94U3RhdHVzEh0KGU9VVEJPWF9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVPVVRCT1hfU1RBVFVTX1BFTkRJTkcQARIbChdPVVRCT1hfU1RBVFVTX1BVQkxJU0hFRBACEhgKFE9VVEJPWF9TVEFUVVNfRkFJTEVEEAMq1gIKD1VzYWdlTWV0cmljS2luZBIhCh1VU0FHRV9NRVRSSUNfS0lORF9VTlNQRUNJRklFRBAAEiEKHVVTQUdFX01FVFJJQ19LSU5EX0lOUFVUX1RPS0VOEAESIgoeVVNBR0VfTUVUUklDX0tJTkRfT1VUUFVUX1RPS0VOEAISKAokVVNBR0VfTUVUUklDX0tJTkRfQ0FDSEVEX0lOUFVUX1RPS0VOEAMSHwobVVNBR0VfTUVUUklDX0tJTkRfVE9PTF9DQUxMEAQSIwofVVNBR0VfTUVUUklDX0tJTkRfUlVOTkVSX1NFQ09ORBAFEicKI1VTQUdFX01FVFJJQ19LSU5EX1NUT1JBR0VfQllURV9IT1VSEAYSIgoeVVNBR0VfTUVUUklDX0tJTkRfTkVUV09SS19CWVRFEAcSHAoYVVNBR0VfTUVUUklDX0tJTkRfQ1VTVE9NEAgq4AMKFkF0dHJpYnV0aW9uU3ViamVjdEtpbmQSKAokQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX1VOU1BFQ0lGSUVEEAASIwofQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX1RFTkFOVBABEiYKIkFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9QUklOQ0lQQUwQAhIqCiZBVFRSSUJVVElPTl9TVUJKRUNUX0tJTkRfQUNUSU9OX0lOVEVOVBADEiYKIkFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9XT1JLX0lURU0QBBItCilBVFRSSUJVVElPTl9TVUJKRUNUX0tJTkRfQVJUSUZBQ1RfVkVSU0lPThAFEiUKIUFUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9SRVNPVVJDRRAGEicKI0FUVFJJQlVUSU9OX1NVQkpFQ1RfS0lORF9UUkFDRV9TUEFOEAcSKAokQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX1VTQUdFX0VOVFJZEAgSKAokQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX1NQRU5EX0VOVFJZEAkSKAokQVRUUklCVVRJT05fU1VCSkVDVF9LSU5EX0NPU1RfQ0VOVEVSEAoqeQoQQ2FwYWJpbGl0eVN0YXR1cxIhCh1DQVBBQklMSVRZX1NUQVRVU19VTlNQRUNJRklFRBAAEh8KG0NBUEFCSUxJVFlfU1RBVFVTX0FWQUlMQUJMRRABEiEKHUNBUEFCSUxJVFlfU1RBVFVTX1VOQVZBSUxBQkxFEAIy9wcKD1BsYXRmb3JtU2VydmljZRKAAQoMR2V0Qm9vdHN0cmFwEiAucGxhdGZvcm0udjEuR2V0Qm9vdHN0cmFwUmVxdWVzdBohLnBsYXRmb3JtLnYxLkdldEJvb3RzdHJhcFJlc3BvbnNlIivK8xgNcGxhdGZvcm06cmVhZNLzGBJzY29wZS53b3Jrc3BhY2VfaWTY8xgBEoMBCgpDcmVhdGVXb3JrEh4ucGxhdGZvcm0udjEuQ3JlYXRlV29ya1JlcXVlc3QaHy5wbGF0Zm9ybS52MS5DcmVhdGVXb3JrUmVzcG9uc2UiNMrzGA5wbGF0Zm9ybTp3cml0ZdLzGBpjb250ZXh0LnNjb3BlLndvcmtzcGFjZV9pZNjzGAISjAEKDVByb3Bvc2VBY3Rpb24SIS5wbGF0Zm9ybS52MS5Qcm9wb3NlQWN0aW9uUmVxdWVzdBoiLnBsYXRmb3JtLnYxLlByb3Bvc2VBY3Rpb25SZXNwb25zZSI0yvMYDnBsYXRmb3JtOndyaXRl0vMYGmNvbnRleHQuc2NvcGUud29ya3NwYWNlX2lk2PMYAxKPAQoOQ3JlYXRlQXJ0aWZhY3QSIi5wbGF0Zm9ybS52MS5DcmVhdGVBcnRpZmFjdFJlcXVlc3QaIy5wbGF0Zm9ybS52MS5DcmVhdGVBcnRpZmFjdFJlc3BvbnNlIjTK8xgOcGxhdGZvcm06d3JpdGXS8xgaY29udGV4dC5zY29wZS53b3Jrc3BhY2VfaWTY8xgCEo8BCg5SZWNvcmRFdmlkZW5jZRIiLnBsYXRmb3JtLnYxLlJlY29yZEV2aWRlbmNlUmVxdWVzdBojLnBsYXRmb3JtLnYxLlJlY29yZEV2aWRlbmNlUmVzcG9uc2UiNMrzGA5wbGF0Zm9ybTp3cml0ZdLzGBpjb250ZXh0LnNjb3BlLndvcmtzcGFjZV9pZNjzGAIShgEKC1JlY29yZFNjb3JlEh8ucGxhdGZvcm0udjEuUmVjb3JkU2NvcmVSZXF1ZXN0GiAucGxhdGZvcm0udjEuUmVjb3JkU2NvcmVSZXNwb25zZSI0yvMYDnBsYXRmb3JtOndyaXRl0vMYGmNvbnRleHQuc2NvcGUud29ya3NwYWNlX2lk2PMYAhKeAQoTQXBwbHlSZWNvbW1lbmRhdGlvbhInLnBsYXRmb3JtLnYxLkFwcGx5UmVjb21tZW5kYXRpb25SZXF1ZXN0GigucGxhdGZvcm0udjEuQXBwbHlSZWNvbW1lbmRhdGlvblJlc3BvbnNlIjTK8xgOcGxhdGZvcm06d3JpdGXS8xgaY29udGV4dC5zY29wZS53b3Jrc3BhY2VfaWTY8xgDQjtaOWdpdGh1Yi5jb20vZXZhbG9wcy9wbGF0Zm9ybS9nZW4vZ28vcGxhdGZvcm0vdjE7cGxhdGZvcm12MWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_authz, file_google_protobuf_struct, file_google_protobuf_timestamp]); /** * @generated from message platform.v1.TenantScope @@ -419,6 +419,13 @@ export type NewWorkItem = Message<"platform.v1.NewWorkItem"> & { * @generated from field: platform.v1.EvalAssignment eval_assignment = 5; */ evalAssignment?: EvalAssignment | undefined; + + /** + * Immutable, versioned remediation plan owned by this Work item. + * + * @generated from field: platform.v1.WorkRemediationPlan remediation_plan = 6; + */ + remediationPlan?: WorkRemediationPlan | undefined; }; /** @@ -481,6 +488,11 @@ export type WorkItem = Message<"platform.v1.WorkItem"> & { * @generated from field: platform.v1.EvalAssignment eval_assignment = 10; */ evalAssignment?: EvalAssignment | undefined; + + /** + * @generated from field: platform.v1.WorkRemediationPlan remediation_plan = 11; + */ + remediationPlan?: WorkRemediationPlan | undefined; }; /** @@ -533,6 +545,230 @@ export type ResourceRef = Message<"platform.v1.ResourceRef"> & { export const ResourceRefSchema: GenMessage = /*@__PURE__*/ messageDesc(file_platform_v1_platform, 12); +/** + * Exact external identity; the enclosing Work scope remains tenant authority. + * + * @generated from message platform.v1.WorkRemediationResource + */ +export type WorkRemediationResource = Message<"platform.v1.WorkRemediationResource"> & { + /** + * @generated from field: string provider_id = 1; + */ + providerId: string; + + /** + * @generated from field: string connection_id = 2; + */ + connectionId: string; + + /** + * @generated from field: string stable_resource_id = 3; + */ + stableResourceId: string; + + /** + * @generated from field: string resource_kind = 4; + */ + resourceKind: string; + + /** + * @generated from field: platform.v1.ResourceRef platform_resource = 5; + */ + platformResource?: ResourceRef | undefined; +}; + +/** + * Describes the message platform.v1.WorkRemediationResource. + * Use `create(WorkRemediationResourceSchema)` to create a new message. + */ +export const WorkRemediationResourceSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_platform_v1_platform, 13); + +/** + * @generated from message platform.v1.WorkRemediationAction + */ +export type WorkRemediationAction = Message<"platform.v1.WorkRemediationAction"> & { + /** + * @generated from field: string action_id = 1; + */ + actionId: string; + + /** + * @generated from field: string catalog_digest = 2; + */ + catalogDigest: string; + + /** + * @generated from field: string input_digest = 3; + */ + inputDigest: string; + + /** + * @generated from field: platform.v1.WorkRemediationResource target = 4; + */ + target?: WorkRemediationResource | undefined; + + /** + * @generated from field: platform.v1.RiskTier risk_tier = 5; + */ + riskTier: RiskTier; + + /** + * @generated from field: bool approval_required = 6; + */ + approvalRequired: boolean; + + /** + * @generated from field: repeated string required_scopes = 7; + */ + requiredScopes: string[]; + + /** + * @generated from field: string idempotency_key = 8; + */ + idempotencyKey: string; + + /** + * @generated from field: repeated string postcondition_ids = 9; + */ + postconditionIds: string[]; + + /** + * Immutable ArtifactVersion containing schema-validated provider arguments. + * input_digest binds its exact bytes; secrets remain references. + * + * @generated from field: platform.v1.ResourceRef input_artifact_ref = 10; + */ + inputArtifactRef?: ResourceRef | undefined; +}; + +/** + * Describes the message platform.v1.WorkRemediationAction. + * Use `create(WorkRemediationActionSchema)` to create a new message. + */ +export const WorkRemediationActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_platform_v1_platform, 14); + +/** + * @generated from message platform.v1.WorkRemediationPostcondition + */ +export type WorkRemediationPostcondition = Message<"platform.v1.WorkRemediationPostcondition"> & { + /** + * @generated from field: string postcondition_id = 1; + */ + postconditionId: string; + + /** + * @generated from field: platform.v1.WorkRemediationResource target = 2; + */ + target?: WorkRemediationResource | undefined; + + /** + * @generated from field: string observer_action_id = 3; + */ + observerActionId: string; + + /** + * @generated from field: string expected_state_digest = 4; + */ + expectedStateDigest: string; + + /** + * @generated from field: uint32 max_age_seconds = 5; + */ + maxAgeSeconds: number; + + /** + * @generated from field: platform.v1.WorkRemediationEvidenceIndependence required_independence = 6; + */ + requiredIndependence: WorkRemediationEvidenceIndependence; +}; + +/** + * Describes the message platform.v1.WorkRemediationPostcondition. + * Use `create(WorkRemediationPostconditionSchema)` to create a new message. + */ +export const WorkRemediationPostconditionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_platform_v1_platform, 15); + +/** + * A typed extension of Platform Work, not a separate execution or approval + * owner. plan_digest excludes itself and binds every immutable field below. + * + * @generated from message platform.v1.WorkRemediationPlan + */ +export type WorkRemediationPlan = Message<"platform.v1.WorkRemediationPlan"> & { + /** + * @generated from field: uint32 schema_version = 1; + */ + schemaVersion: number; + + /** + * @generated from field: string plan_digest = 2; + */ + planDigest: string; + + /** + * @generated from field: platform.v1.TenantScope scope = 3; + */ + scope?: TenantScope | undefined; + + /** + * @generated from field: string source_finding_id = 4; + */ + sourceFindingId: string; + + /** + * @generated from field: repeated platform.v1.RecordRef source_evidence = 5; + */ + sourceEvidence: RecordRef[]; + + /** + * @generated from field: repeated platform.v1.WorkRemediationResource affected_resources = 6; + */ + affectedResources: WorkRemediationResource[]; + + /** + * @generated from field: repeated platform.v1.WorkRemediationPostcondition postconditions = 7; + */ + postconditions: WorkRemediationPostcondition[]; + + /** + * @generated from field: repeated platform.v1.WorkRemediationAction actions = 8; + */ + actions: WorkRemediationAction[]; + + /** + * @generated from field: platform.v1.WorkRemediationClassification classification = 9; + */ + classification: WorkRemediationClassification; + + /** + * @generated from field: string lineage_id = 10; + */ + lineageId: string; + + /** + * @generated from field: string idempotency_key = 11; + */ + idempotencyKey: string; + + /** + * Manual and blocked Work retain an explicit reason rather than inventing + * an executable connector action. + * + * @generated from field: string non_executable_reason = 12; + */ + nonExecutableReason: string; +}; + +/** + * Describes the message platform.v1.WorkRemediationPlan. + * Use `create(WorkRemediationPlanSchema)` to create a new message. + */ +export const WorkRemediationPlanSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_platform_v1_platform, 16); + /** * RecordRef is the canonical, content-free pointer used by customer read * models to join independently owned operational records. It is correlation, @@ -565,7 +801,7 @@ export type RecordRef = Message<"platform.v1.RecordRef"> & { * Use `create(RecordRefSchema)` to create a new message. */ export const RecordRefSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 13); + messageDesc(file_platform_v1_platform, 17); /** * @generated from message platform.v1.ActionIntent @@ -647,7 +883,7 @@ export type ActionIntent = Message<"platform.v1.ActionIntent"> & { * Use `create(ActionIntentSchema)` to create a new message. */ export const ActionIntentSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 14); + messageDesc(file_platform_v1_platform, 18); /** * @generated from message platform.v1.NewArtifactVersion @@ -694,7 +930,7 @@ export type NewArtifactVersion = Message<"platform.v1.NewArtifactVersion"> & { * Use `create(NewArtifactVersionSchema)` to create a new message. */ export const NewArtifactVersionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 15); + messageDesc(file_platform_v1_platform, 19); /** * @generated from message platform.v1.Artifact @@ -741,7 +977,7 @@ export type Artifact = Message<"platform.v1.Artifact"> & { * Use `create(ArtifactSchema)` to create a new message. */ export const ArtifactSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 16); + messageDesc(file_platform_v1_platform, 20); /** * @generated from message platform.v1.ArtifactVersion @@ -798,7 +1034,7 @@ export type ArtifactVersion = Message<"platform.v1.ArtifactVersion"> & { * Use `create(ArtifactVersionSchema)` to create a new message. */ export const ArtifactVersionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 17); + messageDesc(file_platform_v1_platform, 21); /** * @generated from message platform.v1.EvidenceRecord @@ -840,7 +1076,7 @@ export type EvidenceRecord = Message<"platform.v1.EvidenceRecord"> & { * Use `create(EvidenceRecordSchema)` to create a new message. */ export const EvidenceRecordSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 18); + messageDesc(file_platform_v1_platform, 22); /** * @generated from message platform.v1.Score @@ -912,7 +1148,7 @@ export type Score = Message<"platform.v1.Score"> & { * Use `create(ScoreSchema)` to create a new message. */ export const ScoreSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 19); + messageDesc(file_platform_v1_platform, 23); /** * @generated from message platform.v1.Recommendation @@ -984,7 +1220,7 @@ export type Recommendation = Message<"platform.v1.Recommendation"> & { * Use `create(RecommendationSchema)` to create a new message. */ export const RecommendationSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 20); + messageDesc(file_platform_v1_platform, 24); /** * @generated from message platform.v1.DomainEvent @@ -1036,7 +1272,7 @@ export type DomainEvent = Message<"platform.v1.DomainEvent"> & { * Use `create(DomainEventSchema)` to create a new message. */ export const DomainEventSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 21); + messageDesc(file_platform_v1_platform, 25); /** * @generated from message platform.v1.OutboxMessage @@ -1078,7 +1314,7 @@ export type OutboxMessage = Message<"platform.v1.OutboxMessage"> & { * Use `create(OutboxMessageSchema)` to create a new message. */ export const OutboxMessageSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 22); + messageDesc(file_platform_v1_platform, 26); /** * @generated from message platform.v1.OperationReceipt @@ -1110,7 +1346,7 @@ export type OperationReceipt = Message<"platform.v1.OperationReceipt"> & { * Use `create(OperationReceiptSchema)` to create a new message. */ export const OperationReceiptSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 23); + messageDesc(file_platform_v1_platform, 27); /** * @generated from message platform.v1.UsageLedgerEntry @@ -1207,7 +1443,7 @@ export type UsageLedgerEntry = Message<"platform.v1.UsageLedgerEntry"> & { * Use `create(UsageLedgerEntrySchema)` to create a new message. */ export const UsageLedgerEntrySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 24); + messageDesc(file_platform_v1_platform, 28); /** * @generated from message platform.v1.SpendLedgerEntry @@ -1279,7 +1515,7 @@ export type SpendLedgerEntry = Message<"platform.v1.SpendLedgerEntry"> & { * Use `create(SpendLedgerEntrySchema)` to create a new message. */ export const SpendLedgerEntrySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 25); + messageDesc(file_platform_v1_platform, 29); /** * @generated from message platform.v1.AttributionEdge @@ -1346,7 +1582,7 @@ export type AttributionEdge = Message<"platform.v1.AttributionEdge"> & { * Use `create(AttributionEdgeSchema)` to create a new message. */ export const AttributionEdgeSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 26); + messageDesc(file_platform_v1_platform, 30); /** * @generated from message platform.v1.GetBootstrapRequest @@ -1363,7 +1599,7 @@ export type GetBootstrapRequest = Message<"platform.v1.GetBootstrapRequest"> & { * Use `create(GetBootstrapRequestSchema)` to create a new message. */ export const GetBootstrapRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 27); + messageDesc(file_platform_v1_platform, 31); /** * @generated from message platform.v1.GetBootstrapResponse @@ -1385,7 +1621,7 @@ export type GetBootstrapResponse = Message<"platform.v1.GetBootstrapResponse"> & * Use `create(GetBootstrapResponseSchema)` to create a new message. */ export const GetBootstrapResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 28); + messageDesc(file_platform_v1_platform, 32); /** * @generated from message platform.v1.PlatformCapability @@ -1417,7 +1653,7 @@ export type PlatformCapability = Message<"platform.v1.PlatformCapability"> & { * Use `create(PlatformCapabilitySchema)` to create a new message. */ export const PlatformCapabilitySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 29); + messageDesc(file_platform_v1_platform, 33); /** * @generated from message platform.v1.PlatformCapabilityFeature @@ -1444,7 +1680,7 @@ export type PlatformCapabilityFeature = Message<"platform.v1.PlatformCapabilityF * Use `create(PlatformCapabilityFeatureSchema)` to create a new message. */ export const PlatformCapabilityFeatureSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 30); + messageDesc(file_platform_v1_platform, 34); /** * @generated from message platform.v1.CreateWorkRequest @@ -1466,7 +1702,7 @@ export type CreateWorkRequest = Message<"platform.v1.CreateWorkRequest"> & { * Use `create(CreateWorkRequestSchema)` to create a new message. */ export const CreateWorkRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 31); + messageDesc(file_platform_v1_platform, 35); /** * @generated from message platform.v1.CreateWorkResponse @@ -1488,7 +1724,7 @@ export type CreateWorkResponse = Message<"platform.v1.CreateWorkResponse"> & { * Use `create(CreateWorkResponseSchema)` to create a new message. */ export const CreateWorkResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 32); + messageDesc(file_platform_v1_platform, 36); /** * @generated from message platform.v1.ProposeActionRequest @@ -1530,7 +1766,7 @@ export type ProposeActionRequest = Message<"platform.v1.ProposeActionRequest"> & * Use `create(ProposeActionRequestSchema)` to create a new message. */ export const ProposeActionRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 33); + messageDesc(file_platform_v1_platform, 37); /** * @generated from message platform.v1.ProposeActionResponse @@ -1552,7 +1788,7 @@ export type ProposeActionResponse = Message<"platform.v1.ProposeActionResponse"> * Use `create(ProposeActionResponseSchema)` to create a new message. */ export const ProposeActionResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 34); + messageDesc(file_platform_v1_platform, 38); /** * @generated from message platform.v1.CreateArtifactRequest @@ -1574,7 +1810,7 @@ export type CreateArtifactRequest = Message<"platform.v1.CreateArtifactRequest"> * Use `create(CreateArtifactRequestSchema)` to create a new message. */ export const CreateArtifactRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 35); + messageDesc(file_platform_v1_platform, 39); /** * @generated from message platform.v1.CreateArtifactResponse @@ -1601,7 +1837,7 @@ export type CreateArtifactResponse = Message<"platform.v1.CreateArtifactResponse * Use `create(CreateArtifactResponseSchema)` to create a new message. */ export const CreateArtifactResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 36); + messageDesc(file_platform_v1_platform, 40); /** * @generated from message platform.v1.RecordEvidenceRequest @@ -1633,7 +1869,7 @@ export type RecordEvidenceRequest = Message<"platform.v1.RecordEvidenceRequest"> * Use `create(RecordEvidenceRequestSchema)` to create a new message. */ export const RecordEvidenceRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 37); + messageDesc(file_platform_v1_platform, 41); /** * @generated from message platform.v1.RecordEvidenceResponse @@ -1655,7 +1891,7 @@ export type RecordEvidenceResponse = Message<"platform.v1.RecordEvidenceResponse * Use `create(RecordEvidenceResponseSchema)` to create a new message. */ export const RecordEvidenceResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 38); + messageDesc(file_platform_v1_platform, 42); /** * @generated from message platform.v1.RecordScoreRequest @@ -1707,7 +1943,7 @@ export type RecordScoreRequest = Message<"platform.v1.RecordScoreRequest"> & { * Use `create(RecordScoreRequestSchema)` to create a new message. */ export const RecordScoreRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 39); + messageDesc(file_platform_v1_platform, 43); /** * @generated from message platform.v1.RecordScoreResponse @@ -1734,7 +1970,7 @@ export type RecordScoreResponse = Message<"platform.v1.RecordScoreResponse"> & { * Use `create(RecordScoreResponseSchema)` to create a new message. */ export const RecordScoreResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 40); + messageDesc(file_platform_v1_platform, 44); /** * @generated from message platform.v1.ApplyRecommendationRequest @@ -1796,7 +2032,7 @@ export type ApplyRecommendationRequest = Message<"platform.v1.ApplyRecommendatio * Use `create(ApplyRecommendationRequestSchema)` to create a new message. */ export const ApplyRecommendationRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 41); + messageDesc(file_platform_v1_platform, 45); /** * @generated from message platform.v1.ApplyRecommendationResponse @@ -1823,7 +2059,7 @@ export type ApplyRecommendationResponse = Message<"platform.v1.ApplyRecommendati * Use `create(ApplyRecommendationResponseSchema)` to create a new message. */ export const ApplyRecommendationResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_platform_v1_platform, 42); + messageDesc(file_platform_v1_platform, 46); /** * @generated from enum platform.v1.PrincipalKind @@ -2159,6 +2395,68 @@ export enum ResourceKind { export const ResourceKindSchema: GenEnum = /*@__PURE__*/ enumDesc(file_platform_v1_platform, 5); +/** + * @generated from enum platform.v1.WorkRemediationClassification + */ +export enum WorkRemediationClassification { + /** + * @generated from enum value: WORK_REMEDIATION_CLASSIFICATION_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: WORK_REMEDIATION_CLASSIFICATION_AUTO_EXECUTABLE = 1; + */ + AUTO_EXECUTABLE = 1, + + /** + * @generated from enum value: WORK_REMEDIATION_CLASSIFICATION_APPROVAL_EXECUTABLE = 2; + */ + APPROVAL_EXECUTABLE = 2, + + /** + * @generated from enum value: WORK_REMEDIATION_CLASSIFICATION_MANUAL_WORK = 3; + */ + MANUAL_WORK = 3, + + /** + * @generated from enum value: WORK_REMEDIATION_CLASSIFICATION_BLOCKED = 4; + */ + BLOCKED = 4, +} + +/** + * Describes the enum platform.v1.WorkRemediationClassification. + */ +export const WorkRemediationClassificationSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_platform_v1_platform, 6); + +/** + * @generated from enum platform.v1.WorkRemediationEvidenceIndependence + */ +export enum WorkRemediationEvidenceIndependence { + /** + * @generated from enum value: WORK_REMEDIATION_EVIDENCE_INDEPENDENCE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: WORK_REMEDIATION_EVIDENCE_INDEPENDENCE_ACTION_OUTPUT = 1; + */ + ACTION_OUTPUT = 1, + + /** + * @generated from enum value: WORK_REMEDIATION_EVIDENCE_INDEPENDENCE_INDEPENDENT_OBSERVATION = 2; + */ + INDEPENDENT_OBSERVATION = 2, +} + +/** + * Describes the enum platform.v1.WorkRemediationEvidenceIndependence. + */ +export const WorkRemediationEvidenceIndependenceSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_platform_v1_platform, 7); + /** * RecordKind identifies an authoritative operational record without copying * that record into a read model. The enclosing request supplies exact tenant @@ -2242,7 +2540,7 @@ export enum RecordKind { * Describes the enum platform.v1.RecordKind. */ export const RecordKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 6); + enumDesc(file_platform_v1_platform, 8); /** * @generated from enum platform.v1.RiskTier @@ -2278,7 +2576,7 @@ export enum RiskTier { * Describes the enum platform.v1.RiskTier. */ export const RiskTierSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 7); + enumDesc(file_platform_v1_platform, 9); /** * @generated from enum platform.v1.ApprovalState @@ -2319,7 +2617,7 @@ export enum ApprovalState { * Describes the enum platform.v1.ApprovalState. */ export const ApprovalStateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 8); + enumDesc(file_platform_v1_platform, 10); /** * @generated from enum platform.v1.ActionExecutionState @@ -2370,7 +2668,7 @@ export enum ActionExecutionState { * Describes the enum platform.v1.ActionExecutionState. */ export const ActionExecutionStateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 9); + enumDesc(file_platform_v1_platform, 11); /** * @generated from enum platform.v1.ArtifactKind @@ -2431,7 +2729,7 @@ export enum ArtifactKind { * Describes the enum platform.v1.ArtifactKind. */ export const ArtifactKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 10); + enumDesc(file_platform_v1_platform, 12); /** * @generated from enum platform.v1.ArtifactState @@ -2467,7 +2765,7 @@ export enum ArtifactState { * Describes the enum platform.v1.ArtifactState. */ export const ArtifactStateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 11); + enumDesc(file_platform_v1_platform, 13); /** * @generated from enum platform.v1.EvidenceKind @@ -2518,7 +2816,7 @@ export enum EvidenceKind { * Describes the enum platform.v1.EvidenceKind. */ export const EvidenceKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 12); + enumDesc(file_platform_v1_platform, 14); /** * @generated from enum platform.v1.RecommendationKind @@ -2554,7 +2852,7 @@ export enum RecommendationKind { * Describes the enum platform.v1.RecommendationKind. */ export const RecommendationKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 13); + enumDesc(file_platform_v1_platform, 15); /** * @generated from enum platform.v1.RecommendationState @@ -2585,7 +2883,7 @@ export enum RecommendationState { * Describes the enum platform.v1.RecommendationState. */ export const RecommendationStateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 14); + enumDesc(file_platform_v1_platform, 16); /** * @generated from enum platform.v1.OutboxStatus @@ -2616,7 +2914,7 @@ export enum OutboxStatus { * Describes the enum platform.v1.OutboxStatus. */ export const OutboxStatusSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 15); + enumDesc(file_platform_v1_platform, 17); /** * @generated from enum platform.v1.UsageMetricKind @@ -2672,7 +2970,7 @@ export enum UsageMetricKind { * Describes the enum platform.v1.UsageMetricKind. */ export const UsageMetricKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 16); + enumDesc(file_platform_v1_platform, 18); /** * @generated from enum platform.v1.AttributionSubjectKind @@ -2738,7 +3036,7 @@ export enum AttributionSubjectKind { * Describes the enum platform.v1.AttributionSubjectKind. */ export const AttributionSubjectKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 17); + enumDesc(file_platform_v1_platform, 19); /** * @generated from enum platform.v1.CapabilityStatus @@ -2764,7 +3062,7 @@ export enum CapabilityStatus { * Describes the enum platform.v1.CapabilityStatus. */ export const CapabilityStatusSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_platform_v1_platform, 18); + enumDesc(file_platform_v1_platform, 20); /** * PlatformService is the product-facing primitive API for the Rust platform