@scalekit-sdk/node 2.2.0 → 2.2.2

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.
Files changed (62) hide show
  1. package/{reference.md → REFERENCE.md} +530 -77
  2. package/lib/core.js +1 -1
  3. package/package.json +9 -3
  4. package/.github/dependabot.yml +0 -10
  5. package/.nvmrc +0 -1
  6. package/buf.gen.yaml +0 -20
  7. package/jest.config.js +0 -15
  8. package/src/auth.ts +0 -99
  9. package/src/connect.ts +0 -32
  10. package/src/connection.ts +0 -267
  11. package/src/constants/user.ts +0 -22
  12. package/src/core.ts +0 -139
  13. package/src/directory.ts +0 -431
  14. package/src/domain.ts +0 -273
  15. package/src/errors/base-exception.ts +0 -263
  16. package/src/errors/index.ts +0 -3
  17. package/src/errors/specific-exceptions.ts +0 -88
  18. package/src/index.ts +0 -10
  19. package/src/organization.ts +0 -571
  20. package/src/passwordless.ts +0 -139
  21. package/src/permission.ts +0 -310
  22. package/src/pkg/grpc/buf/validate/validate_pb.ts +0 -28
  23. package/src/pkg/grpc/google/api/annotations_pb.ts +0 -28
  24. package/src/pkg/grpc/google/api/field_behavior_pb.ts +0 -28
  25. package/src/pkg/grpc/google/api/visibility_pb.ts +0 -28
  26. package/src/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.ts +0 -28
  27. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.ts +0 -257
  28. package/src/pkg/grpc/scalekit/v1/auth/auth_pb.ts +0 -836
  29. package/src/pkg/grpc/scalekit/v1/auth/passwordless_pb.ts +0 -264
  30. package/src/pkg/grpc/scalekit/v1/auth/webauthn_pb.ts +0 -794
  31. package/src/pkg/grpc/scalekit/v1/commons/commons_pb.ts +0 -452
  32. package/src/pkg/grpc/scalekit/v1/connections/connections_pb.ts +0 -2645
  33. package/src/pkg/grpc/scalekit/v1/directories/directories_pb.ts +0 -1393
  34. package/src/pkg/grpc/scalekit/v1/domains/domains_pb.ts +0 -599
  35. package/src/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.ts +0 -311
  36. package/src/pkg/grpc/scalekit/v1/options/options_pb.ts +0 -200
  37. package/src/pkg/grpc/scalekit/v1/organizations/organizations_pb.ts +0 -1141
  38. package/src/pkg/grpc/scalekit/v1/roles/roles_pb.ts +0 -1491
  39. package/src/pkg/grpc/scalekit/v1/sessions/sessions_pb.ts +0 -497
  40. package/src/pkg/grpc/scalekit/v1/users/users_pb.ts +0 -1404
  41. package/src/role.ts +0 -463
  42. package/src/scalekit.ts +0 -800
  43. package/src/session.ts +0 -323
  44. package/src/types/auth.ts +0 -73
  45. package/src/types/organization.ts +0 -12
  46. package/src/types/scalekit.ts +0 -50
  47. package/src/types/user.ts +0 -21
  48. package/src/user.ts +0 -829
  49. package/src/webauthn.ts +0 -99
  50. package/tests/README.md +0 -25
  51. package/tests/connection.test.ts +0 -42
  52. package/tests/directory.test.ts +0 -46
  53. package/tests/domain.test.ts +0 -293
  54. package/tests/organization.test.ts +0 -81
  55. package/tests/passwordless.test.ts +0 -108
  56. package/tests/permission.test.ts +0 -399
  57. package/tests/role.test.ts +0 -323
  58. package/tests/scalekit.test.ts +0 -104
  59. package/tests/setup.ts +0 -34
  60. package/tests/users.test.ts +0 -168
  61. package/tests/utils/test-data.ts +0 -490
  62. package/tsconfig.json +0 -19
@@ -1,1404 +0,0 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
2
- // @generated from file scalekit/v1/users/users.proto (package scalekit.v1.users, syntax proto3)
3
- /* eslint-disable */
4
-
5
- import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
- import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
- import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
8
- import { file_google_api_annotations } from "../../../google/api/annotations_pb";
9
- import { file_google_api_field_behavior } from "../../../google/api/field_behavior_pb";
10
- import { file_google_api_visibility } from "../../../google/api/visibility_pb";
11
- import type { EmptySchema, Timestamp } from "@bufbuild/protobuf/wkt";
12
- import { file_google_protobuf_empty, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
13
- import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
14
- import type { OrganizationMembership, Role, UserProfile } from "../commons/commons_pb";
15
- import { file_scalekit_v1_commons_commons } from "../commons/commons_pb";
16
- import { file_scalekit_v1_options_options } from "../options/options_pb";
17
- import type { Message } from "@bufbuild/protobuf";
18
-
19
- /**
20
- * Describes the file scalekit/v1/users/users.proto.
21
- */
22
- export const file_scalekit_v1_users_users: GenFile = /*@__PURE__*/
23
- fileDesc("Ch1zY2FsZWtpdC92MS91c2Vycy91c2Vycy5wcm90bxIRc2NhbGVraXQudjEudXNlcnMi9AwKBFVzZXIScQoCaWQYASABKAlCZZJBYjJIVW5pcXVlIHN5c3RlbS1nZW5lcmF0ZWQgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIuIEltbXV0YWJsZSBvbmNlIGNyZWF0ZWQuShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giEqABCg5lbnZpcm9ubWVudF9pZBgCIAEoCUKHAZJBcjJYSWRlbnRpZmllciBvZiB0aGUgZW52aXJvbm1lbnQgd2hlcmUgdGhlIHVzZXIgd2FzIGNyZWF0ZWQuIFN5c3RlbS1hc3NpZ25lZCBhbmQgcmVhZC1vbmx5LkoWImVudl85ODc2enl4dzU0MzJ2dXRzIuBBA/rS5JMCCRIHUFJFVklFVxKQAQoLY3JlYXRlX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQl+SQVkyV1RpbWVzdGFtcCB3aGVuIHRoZSB1c2VyIGFjY291bnQgd2FzIGluaXRpYWxseSBjcmVhdGVkLiBBdXRvbWF0aWNhbGx5IHNldCBieSB0aGUgc2VydmVyLuBBAxKVAQoLdXBkYXRlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQmSSQV4yXFRpbWVzdGFtcCBvZiB0aGUgbGFzdCBtb2RpZmljYXRpb24gdG8gdGhlIHVzZXIgYWNjb3VudC4gQXV0b21hdGljYWxseSB1cGRhdGVkIGJ5IHRoZSBzZXJ2ZXIu4EEDEpEBCgVlbWFpbBgFIAEoCUKBAZJBdzJhUHJpbWFyeSBlbWFpbCBhZGRyZXNzIGZvciB0aGUgdXNlci4gTXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnZpcm9ubWVudCBhbmQgdmFsaWQgcGVyIFJGQyA1MzIyLkoSInVzZXJAZXhhbXBsZS5jb20iukgEcgJgARKWAQoLZXh0ZXJuYWxfaWQYBiABKAlCfJJBeTJjWW91ciBhcHBsaWNhdGlvbidzIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9yZ2FuaXphdGlvbiwgdXNlZCB0byBsaW5rIFNjYWxla2l0IHdpdGggeW91ciBzeXN0ZW0uShIiZXh0XzEyMzQ1YTY3Yjg5YyJIAIgBARKcAQoLbWVtYmVyc2hpcHMYByADKAsyKy5zY2FsZWtpdC52MS5jb21tb25zLk9yZ2FuaXphdGlvbk1lbWJlcnNoaXBCWpJBVzJVTGlzdCBvZiBvcmdhbml6YXRpb24gbWVtYmVyc2hpcHMuIEF1dG9tYXRpY2FsbHkgcG9wdWxhdGVkIGJhc2VkIG9uIGdyb3VwIGFzc2lnbm1lbnRzLhKPAQoMdXNlcl9wcm9maWxlGAggASgLMiAuc2NhbGVraXQudjEuY29tbW9ucy5Vc2VyUHJvZmlsZUJXkkFUMlJVc2VyJ3MgcGVyc29uYWwgaW5mb3JtYXRpb24gaW5jbHVkaW5nIG5hbWUsIGFkZHJlc3MsIGFuZCBvdGhlciBwcm9maWxlIGF0dHJpYnV0ZXMuEvYBCghtZXRhZGF0YRgJIAMoCzIlLnNjYWxla2l0LnYxLnVzZXJzLlVzZXIuTWV0YWRhdGFFbnRyeUK8AZJBnwEyZEN1c3RvbSBrZXktdmFsdWUgcGFpcnMgZm9yIHN0b3JpbmcgYWRkaXRpb25hbCB1c2VyIGNvbnRleHQuIEtleXMgKDMtMjUgY2hhcnMpLCB2YWx1ZXMgKDEtMjU2IGNoYXJzKS5KN3siZGVwYXJ0bWVudCI6ICJlbmdpbmVlcmluZyIsICJsb2NhdGlvbiI6ICJueWMtb2ZmaWNlIn26SBaaARMQFCIGcgQQAxgZKgdyBRABGIACEpIBCg9sYXN0X2xvZ2luX3RpbWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQl2SQVcyVVRpbWVzdGFtcCBvZiB0aGUgdXNlcidzIG1vc3QgcmVjZW50IHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24uIFVwZGF0ZWQgYXV0b21hdGljYWxseS7gQQMaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg4KDF9leHRlcm5hbF9pZCL6AQoeQ3JlYXRlVXNlckFuZE1lbWJlcnNoaXBSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIzCgR1c2VyGAIgASgLMh0uc2NhbGVraXQudjEudXNlcnMuQ3JlYXRlVXNlckIGukgDyAEBEnAKFXNlbmRfaW52aXRhdGlvbl9lbWFpbBgDIAEoCEJMkkFJMkFJZiB0cnVlLCBzZW5kcyBhbiBhY3RpdmF0aW9uIGVtYWlsIHRvIHRoZSB1c2VyLiBEZWZhdWx0cyB0byB0cnVlLkoEdHJ1ZUgAiAEBQhgKFl9zZW5kX2ludml0YXRpb25fZW1haWwiSAofQ3JlYXRlVXNlckFuZE1lbWJlcnNoaXBSZXNwb25zZRIlCgR1c2VyGAEgASgLMhcuc2NhbGVraXQudjEudXNlcnMuVXNlciKNBQoKVXBkYXRlVXNlchKWAQoLZXh0ZXJuYWxfaWQYBiABKAlCfJJBeTJjWW91ciBhcHBsaWNhdGlvbidzIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9yZ2FuaXphdGlvbiwgdXNlZCB0byBsaW5rIFNjYWxla2l0IHdpdGggeW91ciBzeXN0ZW0uShIiZXh0XzEyMzQ1YTY3Yjg5YyJIAIgBARKTAQoMdXNlcl9wcm9maWxlGAggASgLMiQuc2NhbGVraXQudjEudXNlcnMuVXBkYXRlVXNlclByb2ZpbGVCV5JBVDJSVXNlcidzIHBlcnNvbmFsIGluZm9ybWF0aW9uIGluY2x1ZGluZyBuYW1lLCBhZGRyZXNzLCBhbmQgb3RoZXIgcHJvZmlsZSBhdHRyaWJ1dGVzLhL8AQoIbWV0YWRhdGEYCSADKAsyKy5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyLk1ldGFkYXRhRW50cnlCvAGSQZ8BMmRDdXN0b20ga2V5LXZhbHVlIHBhaXJzIGZvciBzdG9yaW5nIGFkZGl0aW9uYWwgdXNlciBjb250ZXh0LiBLZXlzICgzLTI1IGNoYXJzKSwgdmFsdWVzICgxLTI1NiBjaGFycykuSjd7ImRlcGFydG1lbnQiOiAiZW5naW5lZXJpbmciLCAibG9jYXRpb24iOiAibnljLW9mZmljZSJ9ukgWmgETEBQiBnIEEAMYGSoHcgUQARiAAhovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDgoMX2V4dGVybmFsX2lkSgQIARAGSgQIBxAISgQIChALIpUEChFVcGRhdGVVc2VyUmVxdWVzdBKIAQoCaWQYASABKAlCepJBaDJOU3lzdGVtLWdlbmVyYXRlZCB1c2VyIElELiBNdXN0IHN0YXJ0IHdpdGggJ3Vzcl8nIGFuZCBiZSAxOS0yNSBjaGFyYWN0ZXJzIGxvbmcuShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQExgZOgR1c3JfSAASjgEKC2V4dGVybmFsX2lkGAIgASgJQneSQXQyY1lvdXIgYXBwbGljYXRpb24ncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBvcmdhbml6YXRpb24sIHVzZWQgdG8gbGluayBTY2FsZWtpdCB3aXRoIHlvdXIgc3lzdGVtLkoNImV4dF83ODkweHl6IkgAEtUBCgR1c2VyGAMgASgLMh0uc2NhbGVraXQudjEudXNlcnMuVXBkYXRlVXNlckKnAZJBnQEycVVzZXIgZmllbGRzIHRvIHVwZGF0ZS4gT25seSBzcGVjaWZpZWQgZmllbGRzIHdpbGwgYmUgbW9kaWZpZWQuIFJlcXVpcmVkIGZpZWxkcyBtdXN0IGJlIHByb3ZpZGVkIGlmIGJlaW5nIGNoYW5nZWQuSih7ImZpcnN0TmFtZSI6ICJKb2huIiwgImxhc3ROYW1lIjogIkRvZSJ9ukgDyAEBQgwKCmlkZW50aXRpZXMiOwoSVXBkYXRlVXNlclJlc3BvbnNlEiUKBHVzZXIYASABKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyIoMCCg5HZXRVc2VyUmVxdWVzdBJSCgJpZBgBIAEoCUJEkkEyMhhTeXN0ZW0tZ2VuZXJhdGVkIHVzZXIgSURKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChABGCA6BHVzcl9IABKOAQoLZXh0ZXJuYWxfaWQYAiABKAlCd5JBdDJjWW91ciBhcHBsaWNhdGlvbidzIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9yZ2FuaXphdGlvbiwgdXNlZCB0byBsaW5rIFNjYWxla2l0IHdpdGggeW91ciBzeXN0ZW0uSg0iZXh0Xzc4OTB4eXoiSABCDAoKaWRlbnRpdGllcyI4Cg9HZXRVc2VyUmVzcG9uc2USJQoEdXNlchgBIAEoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXIiwAEKFkdldEN1cnJlbnRVc2VyUmVzcG9uc2USJQoEdXNlchgBIAEoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXISfwoSY3VycmVudF9zZXNzaW9uX2lkGAIgASgJQmOSQWAyRVRoZSBJRCBvZiB0aGUgY3VycmVudCBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0aGVudGljYXRlZCB1c2VyLkoXInNlc3NfMTIzNGFiY2Q1Njc4ZWZnaCIiFwoVR2V0Q3VycmVudFVzZXJSZXF1ZXN0Is8EChxMaXN0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0ErkBCg9vcmdhbml6YXRpb25faWQYASABKAlCnwGSQYwBMnJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB0byBsaXN0IHVzZXJzLiBNdXN0IHN0YXJ0IHdpdGggJ29yZ18nIGFuZCBiZSAxLTMyIGNoYXJhY3RlcnMgbG9uZy5KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChABGCA6BG9yZ18SnwEKCXBhZ2Vfc2l6ZRgCIAEoDUKLAZJBfzJ5TWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIGluIGEgc2luZ2xlIHJlc3BvbnNlLiBWYWxpZCByYW5nZTogMS0xMDAuIFNlcnZlciBtYXkgcmV0dXJuIGZld2VyIHVzZXJzIHRoYW4gc3BlY2lmaWVkLkoCNTC6SAYqBBhkKAAS0AEKCnBhZ2VfdG9rZW4YAyABKAlCuwGSQbcBMoABUGFnaW5hdGlvbiB0b2tlbiBmcm9tIGEgcHJldmlvdXMgTGlzdFVzZXJSZXNwb25zZS4gVXNlZCB0byByZXRyaWV2ZSB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIExlYXZlIGVtcHR5IGZvciB0aGUgZmlyc3QgcmVxdWVzdC5KMiJleUp3WVdkbElqb2dNaXdnSW14aGMzUmZhV1FpT2lBaWRYTnlYekV5TXpRMUluMD0iIvQECh1MaXN0T3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZRKrAQoPbmV4dF9wYWdlX3Rva2VuGAEgASgJQpEBkkGNATJXT3BhcXVlIHRva2VuIGZvciByZXRyaWV2aW5nIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gRW1wdHkgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMuSjIiZXlKd1lXZGxJam9nTWl3Z0lteGhjM1JmYVdRaU9pQWlkWE55WHpFeU16UTFJbjA9IhJtCgp0b3RhbF9zaXplGAIgASgNQlmSQVYyTlRvdGFsIG51bWJlciBvZiB1c2VycyBtYXRjaGluZyB0aGUgcmVxdWVzdCBjcml0ZXJpYSwgcmVnYXJkbGVzcyBvZiBwYWdpbmF0aW9uLkoEMTA0MhKLAQoFdXNlcnMYAyADKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyQmOSQWAyXkxpc3Qgb2YgdXNlciBvYmplY3RzIGZvciB0aGUgY3VycmVudCBwYWdlLiBNYXkgY29udGFpbiBmZXdlciBlbnRyaWVzIHRoYW4gcmVxdWVzdGVkIHBhZ2Vfc2l6ZS4SpwEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUKNAZJBiQEyU09wYXF1ZSB0b2tlbiBmb3IgcmV0cmlldmluZyB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLiBFbXB0eSBmb3IgdGhlIGZpcnN0IHBhZ2UuSjIiZXlKd1lXZGxJam9nTUN3Z0ltWnBjbk4wWDJsa0lqb2dJblZ6Y2w4NU9EYzJOU0o5IiLSBAoXRGVsZXRlTWVtYmVyc2hpcFJlcXVlc3QSlwEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJ+kkFsMlJVbmlxdWUgb3JnYW5pemF0aW9uIGlkZW50aWZpZXIuIE11c3Qgc3RhcnQgd2l0aCAnb3JnXycgYW5kIGJlIDEtMzIgY2hhcmFjdGVycyBsb25nShYib3JnXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQARggOgRvcmdfEn0KAmlkGAIgASgJQm+SQV0yQ1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRC4gTXVzdCBzdGFydCB3aXRoICd1c3JfJyAoMTktMjUgY2hhcmFjdGVycylKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABJ9CgtleHRlcm5hbF9pZBgDIAEoCUJmkkFjMlJFeHRlcm5hbCBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIGNvbm5lY3RlZCBkaXJlY3Rvcmllcy4gTXVzdCBtYXRjaCBleGlzdGluZyByZWNvcmRzSg0iZXh0Xzc4OTB4eXoiSAAShAEKB2Nhc2NhZGUYBSABKAhCbpJBXDJTSWYgdHJ1ZSwgaWYgdXNlciBoYXMgbm8gbWVtYmVyc2hpcHMgbGVmdCB0aGUgdXNlciBpcyBhbHNvIGRlbGV0ZWQuIGRlZmF1bHRzIHRvIHRydWVKBWZhbHNl+tLkkwIJEgdQUkVWSUVXSAGIAQFCDAoKaWRlbnRpdGllc0IKCghfY2FzY2FkZSLnBQoXQ3JlYXRlTWVtYmVyc2hpcFJlcXVlc3QSpwEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUKNAZJBezJhVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRhcmdldCBvcmdhbml6YXRpb24uIE11c3Qgc3RhcnQgd2l0aCAnb3JnXycgYW5kIGJlIDEtMzIgY2hhcmFjdGVycyBsb25nLkoWIm9yZ18xMjM0YWJjZDU2NzhlZmdoIrpIDHIKEAEYIDoEb3JnXxKDAQoKbWVtYmVyc2hpcBgCIAEoCzIjLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZU1lbWJlcnNoaXBCSpJBQTI/TWVtYmVyc2hpcCBkZXRhaWxzIHRvIGNyZWF0ZS4gUmVxdWlyZWQgZmllbGRzIG11c3QgYmUgcHJvdmlkZWQuukgDyAEBEn0KAmlkGAMgASgJQm+SQV0yQ1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRC4gTXVzdCBzdGFydCB3aXRoICd1c3JfJyAoMTktMjUgY2hhcmFjdGVycylKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABKCAQoLZXh0ZXJuYWxfaWQYBCABKAlCa5JBaDJXRXh0ZXJuYWwgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBjb25uZWN0ZWQgZGlyZWN0b3JpZXMuIE11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgc3lzdGVtSg0iZXh0Xzc4OTB4eXoiSAAScAoVc2VuZF9pbnZpdGF0aW9uX2VtYWlsGAUgASgIQkySQUkyQUlmIHRydWUsIHNlbmRzIGFuIGFjdGl2YXRpb24gZW1haWwgdG8gdGhlIHVzZXIuIERlZmF1bHRzIHRvIHRydWUuSgR0cnVlSAGIAQFCDAoKaWRlbnRpdGllc0IYChZfc2VuZF9pbnZpdGF0aW9uX2VtYWlsIkEKGENyZWF0ZU1lbWJlcnNoaXBSZXNwb25zZRIlCgR1c2VyGAEgASgLMhcuc2NhbGVraXQudjEudXNlcnMuVXNlciKFAgoQTGlzdFVzZXJzUmVxdWVzdBJqCglwYWdlX3NpemUYASABKA1CV5JBVDJOTWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIE11c3QgYmUgYmV0d2VlbiAxMCBhbmQgMTAwSgIzMBKEAQoKcGFnZV90b2tlbhgCIAEoCUJwkkFtMltQYWdpbmF0aW9uIHRva2VuIGZyb20gdGhlIHByZXZpb3VzIHJlc3BvbnNlLiBVc2UgdG8gcmV0cmlldmUgdGhlIG5leHQgcGFnZSBvZiBvcmdhbml6YXRpb25zSg4iPHBhZ2VfdG9rZW4+IiKQBAoRTGlzdFVzZXJzUmVzcG9uc2USOwoFdXNlcnMYASADKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyQhOSQRAyDkxpc3Qgb2YgdXNlcnMuEqQBCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAlCigGSQYYBMlBUb2tlbiBmb3IgcmV0cmlldmluZyB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzLkoyImV5SndZV2RsSWpvZ01pd2dJbXhoYzNSZmFXUWlPaUFpZFhOeVh6RXlNelExSW4wPSISbQoKdG90YWxfc2l6ZRgDIAEoDUJZkkFWMk5Ub3RhbCBudW1iZXIgb2YgdXNlcnMgbWF0Y2hpbmcgdGhlIHJlcXVlc3QgY3JpdGVyaWEsIHJlZ2FyZGxlc3Mgb2YgcGFnaW5hdGlvbi5KBDEwNDISpwEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUKNAZJBiQEyU1Rva2VuIGZvciByZXRyaWV2aW5nIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoaXMgaXMgdGhlIGZpcnN0IHBhZ2UuSjIiZXlKd1lXZGxJam9nTUN3Z0ltWnBjbk4wWDJsa0lqb2dJblZ6Y2w4NU9EYzJOU0o5IiLHAwoSU2VhcmNoVXNlcnNSZXF1ZXN0EqMBCgVxdWVyeRgBIAEoCUKTAZJBgwEyb1NlYXJjaCB0ZXJtIHRvIG1hdGNoIGFnYWluc3QgdXNlciBlbWFpbCwgSURzLCBvciBleHRlcm5hbCBJRHMuIE11c3QgYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzLiBDYXNlIGluc2Vuc2l0aXZlLkoQam9obkBleGFtcGxlLmNvbbpICcgBAXIEEAMYZBJuCglwYWdlX3NpemUYAiABKA1CW5JBUTJLTWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMzAuSgIzMLpIBCoCGB4SmgEKCnBhZ2VfdG9rZW4YAyABKAlChQGSQYEBMmFUb2tlbiBmcm9tIGEgcHJldmlvdXMgcmVzcG9uc2UgZm9yIHBhZ2luYXRpb24uIFByb3ZpZGUgdGhpcyB0byByZXRyaWV2ZSB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuShxleUp3WVdkbElqb3lMQ0pzYVcxcGRDSTZNekI5IpsEChNTZWFyY2hVc2Vyc1Jlc3BvbnNlEqQBCg9uZXh0X3BhZ2VfdG9rZW4YASABKAlCigGSQYYBMlBUb2tlbiBmb3IgcmV0cmlldmluZyB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzLkoyImV5SndZV2RsSWpvZ01pd2dJbXhoYzNSZmFXUWlPaUFpZFhOeVh6RXlNelExSW4wPSISbQoKdG90YWxfc2l6ZRgCIAEoDUJZkkFWMk5Ub3RhbCBudW1iZXIgb2YgdXNlcnMgbWF0Y2hpbmcgdGhlIHJlcXVlc3QgY3JpdGVyaWEsIHJlZ2FyZGxlc3Mgb2YgcGFnaW5hdGlvbi5KBDEwNDISRAoFdXNlcnMYAyADKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyQhySQRkyF0xpc3Qgb2YgbWF0Y2hpbmcgdXNlcnMuEqcBCg9wcmV2X3BhZ2VfdG9rZW4YBCABKAlCjQGSQYkBMlNUb2tlbiBmb3IgcmV0cmlldmluZyB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLiBFbXB0eSBpZiB0aGlzIGlzIHRoZSBmaXJzdCBwYWdlLkoyImV5SndZV2RsSWpvZ01Dd2dJbVpwY25OMFgybGtJam9nSW5WemNsODVPRGMyTlNKOSIinwIKEURlbGV0ZVVzZXJSZXF1ZXN0En0KAmlkGAEgASgJQm+SQV0yQ1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRC4gTXVzdCBzdGFydCB3aXRoICd1c3JfJyAoMTktMjUgY2hhcmFjdGVycylKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABJ9CgtleHRlcm5hbF9pZBgCIAEoCUJmkkFjMlJFeHRlcm5hbCBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIGNvbm5lY3RlZCBkaXJlY3Rvcmllcy4gTXVzdCBtYXRjaCBleGlzdGluZyByZWNvcmRzSg0iZXh0Xzc4OTB4eXoiSABCDAoKaWRlbnRpdGllcyLuBAoXVXBkYXRlTWVtYmVyc2hpcFJlcXVlc3QSuwEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUKhAZJBjgEydFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb24gY29udGFpbmluZyB0aGUgbWVtYmVyc2hpcC4gTXVzdCBzdGFydCB3aXRoICdvcmdfJyBhbmQgYmUgMS0zMiBjaGFyYWN0ZXJzIGxvbmcuShYib3JnXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQARggOgRvcmdfEogBCgJpZBgCIAEoCUJ6kkFoMk5TeXN0ZW0tZ2VuZXJhdGVkIHVzZXIgSUQuIE11c3Qgc3RhcnQgd2l0aCAndXNyXycgYW5kIGJlIDE5LTI1IGNoYXJhY3RlcnMgbG9uZy5KFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABJeCgtleHRlcm5hbF9pZBgDIAEoCUJHkkFEMjNZb3VyIGFwcGxpY2F0aW9uJ3MgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgdXNlci5KDSJleHRfNzg5MHh5eiJIABKbAQoKbWVtYmVyc2hpcBgFIAEoCzIjLnNjYWxla2l0LnYxLnVzZXJzLlVwZGF0ZU1lbWJlcnNoaXBCYpJBWTJETWVtYmVyc2hpcCBmaWVsZHMgdG8gdXBkYXRlLiBPbmx5IHNwZWNpZmllZCBmaWVsZHMgd2lsbCBiZSBtb2RpZmllZC5KEXsicm9sZSI6ICJhZG1pbiJ9ukgDyAEBQgwKCmlkZW50aXRpZXMi3gMKEFVwZGF0ZU1lbWJlcnNoaXASdgoFcm9sZXMYBCADKAsyGS5zY2FsZWtpdC52MS5jb21tb25zLlJvbGVCTJJBSTIyUm9sZSB0byBhc3NpZ24gdG8gdGhlIHVzZXIgd2l0aGluIHRoZSBvcmdhbml6YXRpb25KE1t7Im5hbWUiOiAiYWRtaW4ifV0SggIKCG1ldGFkYXRhGAcgAygLMjEuc2NhbGVraXQudjEudXNlcnMuVXBkYXRlTWVtYmVyc2hpcC5NZXRhZGF0YUVudHJ5QrwBkkGfATJkQ3VzdG9tIGtleS12YWx1ZSBwYWlycyBmb3Igc3RvcmluZyBhZGRpdGlvbmFsIHVzZXIgY29udGV4dC4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko3eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgImxvY2F0aW9uIjogIm55Yy1vZmZpY2UifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAIaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIARACSgQIAhADSgQIAxAESgQIBRAGSgQIBhAHIokFChBDcmVhdGVNZW1iZXJzaGlwEnYKBXJvbGVzGAQgAygLMhkuc2NhbGVraXQudjEuY29tbW9ucy5Sb2xlQkySQUkyMlJvbGUgdG8gYXNzaWduIHRvIHRoZSB1c2VyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uShNbeyJuYW1lIjogImFkbWluIn1dEoICCghtZXRhZGF0YRgHIAMoCzIxLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZU1lbWJlcnNoaXAuTWV0YWRhdGFFbnRyeUK8AZJBnwEyZEN1c3RvbSBrZXktdmFsdWUgcGFpcnMgZm9yIHN0b3JpbmcgYWRkaXRpb25hbCB1c2VyIGNvbnRleHQuIEtleXMgKDMtMjUgY2hhcnMpLCB2YWx1ZXMgKDEtMjU2IGNoYXJzKS5KN3siZGVwYXJ0bWVudCI6ICJlbmdpbmVlcmluZyIsICJsb2NhdGlvbiI6ICJueWMtb2ZmaWNlIn26SBaaARMQFCIGcgQQAxgZKgdyBRABGIACEpYBCg1pbnZpdGVyX2VtYWlsGAggASgJQnqSQWsyUUVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgd2hvIGludml0ZWQgdGhpcyBtZW1iZXIuIE11c3QgYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLkoWImpvaG4uZG9lQGV4YW1wbGUuY29tIrpICXIHEAUY/gFgAUgAiAEBGi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5faW52aXRlcl9lbWFpbEoECAEQAkoECAIQA0oECAMQBEoECAUQBkoECAYQByJBChhVcGRhdGVNZW1iZXJzaGlwUmVzcG9uc2USJQoEdXNlchgBIAEoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXIiiwUKHlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBK1AQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQpsBkkGFATJrVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byBzZWFyY2ggd2l0aGluLiBNdXN0IHN0YXJ0IHdpdGggJ29yZ18nIGFuZCBiZSAxLTMyIGNoYXJhY3RlcnMgbG9uZy5KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SA/IAQFyChABGCA6BG9yZ18SowEKBXF1ZXJ5GAIgASgJQpMBkkGDATJvU2VhcmNoIHRlcm0gdG8gbWF0Y2ggYWdhaW5zdCB1c2VyIGVtYWlsLCBJRHMsIG9yIGV4dGVybmFsIElEcy4gTXVzdCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMuIENhc2UgaW5zZW5zaXRpdmUuShBqb2huQGV4YW1wbGUuY29tukgJyAEBcgQQAxhkEm4KCXBhZ2Vfc2l6ZRgDIAEoDUJbkkFRMktNYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byByZXR1cm4gcGVyIHBhZ2UuIFZhbHVlIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAzMC5KAjMwukgEKgIYHhKaAQoKcGFnZV90b2tlbhgEIAEoCUKFAZJBgQEyYVRva2VuIGZyb20gYSBwcmV2aW91cyByZXNwb25zZSBmb3IgcGFnaW5hdGlvbi4gUHJvdmlkZSB0aGlzIHRvIHJldHJpZXZlIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy5KHGV5SndZV2RsSWpveUxDSnNhVzFwZENJNk16QjkipwQKH1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2USpAEKD25leHRfcGFnZV90b2tlbhgBIAEoCUKKAZJBhgEyUFRva2VuIGZvciByZXRyaWV2aW5nIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gRW1wdHkgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMuSjIiZXlKd1lXZGxJam9nTWl3Z0lteGhjM1JmYVdRaU9pQWlkWE55WHpFeU16UTFJbjA9IhJtCgp0b3RhbF9zaXplGAIgASgNQlmSQVYyTlRvdGFsIG51bWJlciBvZiB1c2VycyBtYXRjaGluZyB0aGUgcmVxdWVzdCBjcml0ZXJpYSwgcmVnYXJkbGVzcyBvZiBwYWdpbmF0aW9uLkoEMTA0MhJECgV1c2VycxgDIAMoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXJCHJJBGTIXTGlzdCBvZiBtYXRjaGluZyB1c2Vycy4SpwEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUKNAZJBiQEyU1Rva2VuIGZvciByZXRyaWV2aW5nIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoaXMgaXMgdGhlIGZpcnN0IHBhZ2UuSjIiZXlKd1lXZGxJam9nTUN3Z0ltWnBjbk4wWDJsa0lqb2dJblZ6Y2w4NU9EYzJOU0o5IiLDBwoKQ3JlYXRlVXNlchKRAQoFZW1haWwYBSABKAlCgQGSQXcyYVByaW1hcnkgZW1haWwgYWRkcmVzcyBmb3IgdGhlIHVzZXIuIE11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW52aXJvbm1lbnQgYW5kIHZhbGlkIHBlciBSRkMgNTMyMi5KEiJ1c2VyQGV4YW1wbGUuY29tIrpIBHICYAESlgEKC2V4dGVybmFsX2lkGAYgASgJQnySQXkyY1lvdXIgYXBwbGljYXRpb24ncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBvcmdhbml6YXRpb24sIHVzZWQgdG8gbGluayBTY2FsZWtpdCB3aXRoIHlvdXIgc3lzdGVtLkoSImV4dF8xMjM0NWE2N2I4OWMiSACIAQESkwEKCm1lbWJlcnNoaXAYByABKAsyIy5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVNZW1iZXJzaGlwQlqSQVcyVUxpc3Qgb2Ygb3JnYW5pemF0aW9uIG1lbWJlcnNoaXBzLiBBdXRvbWF0aWNhbGx5IHBvcHVsYXRlZCBiYXNlZCBvbiBncm91cCBhc3NpZ25tZW50cy4SkwEKDHVzZXJfcHJvZmlsZRgIIAEoCzIkLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJQcm9maWxlQleSQVQyUlVzZXIncyBwZXJzb25hbCBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgbmFtZSwgYWRkcmVzcywgYW5kIG90aGVyIHByb2ZpbGUgYXR0cmlidXRlcy4S/AEKCG1ldGFkYXRhGAkgAygLMisuc2NhbGVraXQudjEudXNlcnMuQ3JlYXRlVXNlci5NZXRhZGF0YUVudHJ5QrwBkkGfATJkQ3VzdG9tIGtleS12YWx1ZSBwYWlycyBmb3Igc3RvcmluZyBhZGRpdGlvbmFsIHVzZXIgY29udGV4dC4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko3eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgImxvY2F0aW9uIjogIm55Yy1vZmZpY2UifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAIaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg4KDF9leHRlcm5hbF9pZEoECAEQAkoECAIQA0oECAMQBEoECAQQBUoECAoQCyKWDwoRQ3JlYXRlVXNlclByb2ZpbGUSUwoKZ2l2ZW5fbmFtZRgCIAEoCUI/kkE0MipVc2VyJ3MgZ2l2ZW4gbmFtZS4gTWF4aW11bSAyNTUgY2hhcmFjdGVycy5KBiJKb2huIrpIBXIDGP8BElQKC2ZhbWlseV9uYW1lGAMgASgJQj+SQTQyK1VzZXIncyBmYW1pbHkgbmFtZS4gTWF4aW11bSAyNTUgY2hhcmFjdGVycy5KBSJEb2UiukgFcgMY/wEScAoEbmFtZRgEIAEoCUJikkFfMklGdWxsIG5hbWUgaW4gZGlzcGxheSBmb3JtYXQuIFR5cGljYWxseSBjb21iaW5lcyBmaXJzdF9uYW1lIGFuZCBsYXN0X25hbWUuShIiSm9obiBNaWNoYWVsIERvZSIScQoGbG9jYWxlGAUgASgJQmGSQV4yU1VzZXIncyBsb2NhbGl6YXRpb24gcHJlZmVyZW5jZSBpbiBCQ1AtNDcgZm9ybWF0LiBEZWZhdWx0cyB0byBvcmdhbml6YXRpb24gc2V0dGluZ3MuSgciZW4tVVMiEn0KDHBob25lX251bWJlchgHIAEoCUJnkkFkMlJQaG9uZSBudW1iZXIgaW4gRS4xNjQgaW50ZXJuYXRpb25hbCBmb3JtYXQuIFJlcXVpcmVkIGZvciBTTVMtYmFzZWQgYXV0aGVudGljYXRpb24uSg4iKzE0MTU1NTUyNjcxIhKBAgoIbWV0YWRhdGEYCCADKAsyMi5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVVc2VyUHJvZmlsZS5NZXRhZGF0YUVudHJ5QroBkkGdATJeU3lzdGVtLW1hbmFnZWQga2V5LXZhbHVlIHBhaXJzIGZvciBpbnRlcm5hbCB0cmFja2luZy4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko7eyJhY2NvdW50X3N0YXR1cyI6ICJhY3RpdmUiLCAic2lnbnVwX3NvdXJjZSI6ICJtb2JpbGVfYXBwIn26SBaaARMQFCIGcgQQAxgZKgdyBRABGIACEpACChFjdXN0b21fYXR0cmlidXRlcxgJIAMoCzI6LnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJQcm9maWxlLkN1c3RvbUF0dHJpYnV0ZXNFbnRyeUK4AZJBmwEyWkN1c3RvbSBhdHRyaWJ1dGVzIGZvciBleHRlbmRlZCB1c2VyIHByb2ZpbGUgZGF0YS4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko9eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgInNlY3VyaXR5X2NsZWFyYW5jZSI6ICJsZXZlbDIifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAISbAoScHJlZmVycmVkX3VzZXJuYW1lGAogASgJQlCSQUUyL1VzZXIncyBwcmVmZXJyZWQgdXNlcm5hbWUgZm9yIGRpc3BsYXkgcHVycG9zZXMuShIiSm9obiBNaWNoYWVsIERvZSK6SAVyAxiABBJxCgdwaWN0dXJlGAsgASgJQluSQVAyLFVSTCB0byB0aGUgdXNlcidzIHByb2ZpbGUgcGljdHVyZSBvciBhdmF0YXIuSiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hdmF0YXIuanBnIrpIBXIDGIAQSACIAQESOQoGZ2VuZGVyGAwgASgJQiSSQSEyF1VzZXIncyBnZW5kZXIgaWRlbnRpdHkuSgYibWFsZSJIAYgBARKZAQoGZ3JvdXBzGA0gAygJQogBkkFwMlFMaXN0IG9mIGdyb3VwIG5hbWVzIHRoZSB1c2VyIGJlbG9uZ3MgdG8uIEVhY2ggZ3JvdXAgbmFtZSBtdXN0IGJlIDEtMjUwIGNoYXJhY3RlcnNKG1siZW5naW5lZXJpbmciLCAibWFuYWdlcnMiXbpIEpIBDwgAEDIYASIHcgUQARj6ARKJAQoKZmlyc3RfbmFtZRgVIAEoCUJ1GAGSQVkyT1tERVBSRUNBVEVEXSBVc2UgZ2l2ZW5fbmFtZSBpbnN0ZWFkLiBVc2VyJ3MgZ2l2ZW4gbmFtZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycy5KBiJKb2huIrpIBXIDGMgB+tLkkwIJEgdQUkVWSUVXEokBCglsYXN0X25hbWUYFiABKAlCdhgBkkFaMlFbREVQUkVDQVRFRF0gVXNlIGZhbWlseV9uYW1lIGluc3RlYWQuIFVzZXIncyBmYW1pbHkgbmFtZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycy5KBSJEb2UiukgFcgMYyAH60uSTAgkSB1BSRVZJRVcaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUN1c3RvbUF0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgoKCF9waWN0dXJlQgkKB19nZW5kZXJKBAgBEAJKBAgGEAcivCcKEVVwZGF0ZVVzZXJQcm9maWxlEtoBCgpnaXZlbl9uYW1lGAIgASgJQsABkkG0ATKpAVVwZGF0ZXMgdGhlIHVzZXIncyBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKS4gVXNlIHRoaXMgZmllbGQgdG8gbW9kaWZ5IGhvdyB0aGUgdXNlcidzIGZpcnN0IG5hbWUgYXBwZWFycyBpbiB0aGUgc3lzdGVtIGFuZCB1c2VyIGludGVyZmFjZXMuIE1heGltdW0gMjU1IGNoYXJhY3RlcnMgYWxsb3dlZC5KBiJKb2huIrpIBXIDGP8BSACIAQES2AEKC2ZhbWlseV9uYW1lGAMgASgJQr0BkkGxATKnAVVwZGF0ZXMgdGhlIHVzZXIncyBmYW1pbHkgbmFtZSAobGFzdCBuYW1lIG9yIHN1cm5hbWUpLiBVc2UgdGhpcyBmaWVsZCB0byBtb2RpZnkgaG93IHRoZSB1c2VyJ3MgbGFzdCBuYW1lIGFwcGVhcnMgdGhyb3VnaG91dCB0aGUgc3lzdGVtLiBNYXhpbXVtIDI1NSBjaGFyYWN0ZXJzIGFsbG93ZWQuSgUiRG9lIrpIBXIDGP8BSAGIAQESqAIKBG5hbWUYBCABKAlClAKSQZACMoECVXBkYXRlcyB0aGUgdXNlcidzIGNvbXBsZXRlIGRpc3BsYXkgbmFtZS4gVXNlIHRoaXMgZmllbGQgd2hlbiB5b3Ugd2FudCB0byBzZXQgdGhlIGZ1bGwgbmFtZSBhcyBhIHNpbmdsZSBzdHJpbmcgcmF0aGVyIHRoYW4gdXNpbmcgc2VwYXJhdGUgZ2l2ZW4gYW5kIGZhbWlseSBuYW1lcy4gVGhpcyBuYW1lIGFwcGVhcnMgaW4gdXNlciBpbnRlcmZhY2VzLCByZXBvcnRzLCBhbmQgYW55d2hlcmUgYSBmb3JtYXR0ZWQgZGlzcGxheSBuYW1lIGlzIG5lZWRlZC5KCiJKb2huIERvZSJIAogBARKPAwoGbG9jYWxlGAUgASgJQvkCkkH1AjLpAlVwZGF0ZXMgdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYW5kIHJlZ2lvbiBzZXR0aW5ncyB1c2luZyBCQ1AtNDcgZm9ybWF0IGNvZGVzLiBVc2UgdGhpcyBmaWVsZCB0byBjdXN0b21pemUgdGhlIHVzZXIncyBleHBlcmllbmNlIHdpdGggbG9jYWxpemVkIGNvbnRlbnQsIGRhdGUgZm9ybWF0cywgbnVtYmVyIGZvcm1hdHRpbmcsIGFuZCBVSSBsYW5ndWFnZS4gV2hlbiBub3Qgc3BlY2lmaWVkLCB0aGUgdXNlciBpbmhlcml0cyB0aGUgb3JnYW5pemF0aW9uJ3MgZGVmYXVsdCBsb2NhbGUgc2V0dGluZ3MuIENvbW1vbiB2YWx1ZXMgaW5jbHVkZSBgZW4tVVNgLCBgZW4tR0JgLCBgZnItRlJgLCBgZGUtREVgLCBhbmQgYGVzLUVTYC5KByJlbi1VUyJIA4gBARKkAwoMcGhvbmVfbnVtYmVyGAcgASgJQogDkkGEAzLxAlVwZGF0ZXMgdGhlIHVzZXIncyBwaG9uZSBudW1iZXIgaW4gRS4xNjQgaW50ZXJuYXRpb25hbCBmb3JtYXQuIFVzZSB0aGlzIGZpZWxkIHRvIGVuYWJsZSBTTVMtYmFzZWQgYXV0aGVudGljYXRpb24gbWV0aG9kcywgdHdvLWZhY3RvciBhdXRoZW50aWNhdGlvbiwgb3IgcGhvbmUtYmFzZWQgYWNjb3VudCByZWNvdmVyeS4gVGhlIHBob25lIG51bWJlciBtdXN0IGluY2x1ZGUgdGhlIGNvdW50cnkgY29kZSBhbmQgYmUgZm9ybWF0dGVkIGFjY29yZGluZyB0byBFLjE2NCBzdGFuZGFyZHMgKGUuZy4sIGArMWAgZm9yIFVTIG51bWJlcnMpLiBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIHdoZW4gZW5hYmxpbmcgU01TIGF1dGhlbnRpY2F0aW9uIGZlYXR1cmVzLkoOIisxNDE1NTU1MjY3MSJIBIgBARLHBAoIbWV0YWRhdGEYCCADKAsyMi5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyUHJvZmlsZS5NZXRhZGF0YUVudHJ5QoAEkkHjAzKjA1VwZGF0ZXMgc3lzdGVtLW1hbmFnZWQga2V5LXZhbHVlIHBhaXJzIGZvciBpbnRlcm5hbCB0cmFja2luZyBhbmQgb3BlcmF0aW9uYWwgZGF0YS4gVXNlIHRoaXMgZmllbGQgdG8gc3RvcmUgc3lzdGVtLWdlbmVyYXRlZCBtZXRhZGF0YSBsaWtlIGFjY291bnQgc3RhdHVzLCBzaWdudXAgc291cmNlLCBsYXN0IGFjdGl2aXR5IHRyYWNraW5nLCBvciBpbnRlZ3JhdGlvbi1zcGVjaWZpYyBpZGVudGlmaWVycy4gVGhlc2UgZmllbGRzIGFyZSB0eXBpY2FsbHkgbWFuYWdlZCBieSBhdXRvbWF0ZWQgcHJvY2Vzc2VzIHJhdGhlciB0aGFuIGRpcmVjdCB1c2VyIGlucHV0LiBLZXlzIG11c3QgYmUgMy0yNSBjaGFyYWN0ZXJzLCB2YWx1ZXMgbXVzdCBiZSAxLTI1NiBjaGFyYWN0ZXJzLCB3aXRoIGEgbWF4aW11bSBvZiAyMCBrZXktdmFsdWUgcGFpcnMuSjt7ImFjY291bnRfc3RhdHVzIjogImFjdGl2ZSIsICJzaWdudXBfc291cmNlIjogIm1vYmlsZV9hcHAifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAIStQUKEWN1c3RvbV9hdHRyaWJ1dGVzGAkgAygLMjouc2NhbGVraXQudjEudXNlcnMuVXBkYXRlVXNlclByb2ZpbGUuQ3VzdG9tQXR0cmlidXRlc0VudHJ5Qt0EkkHABDL+A1VwZGF0ZXMgY3VzdG9tIGF0dHJpYnV0ZXMgZm9yIGV4dGVuZGVkIHVzZXIgcHJvZmlsZSBkYXRhIGFuZCBhcHBsaWNhdGlvbi1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gVXNlIHRoaXMgZmllbGQgdG8gc3RvcmUgYnVzaW5lc3Mtc3BlY2lmaWMgdXNlciBkYXRhIGxpa2UgZGVwYXJ0bWVudCwgam9iIHRpdGxlLCBzZWN1cml0eSBjbGVhcmFuY2VzLCBwcm9qZWN0IGFzc2lnbm1lbnRzLCBvciBhbnkgb3RoZXIgb3JnYW5pemF0aW9uYWwgYXR0cmlidXRlcyB5b3VyIGFwcGxpY2F0aW9uIHJlcXVpcmVzLiBVbmxpa2Ugc3lzdGVtIG1ldGFkYXRhLCB0aGVzZSBhdHRyaWJ1dGVzIGFyZSB0eXBpY2FsbHkgbWFuYWdlZCBieSBhZG1pbmlzdHJhdG9ycyBvciBhcHBsaWNhdGlvbnMgYW5kIGFyZSB2aXNpYmxlIHRvIGVuZCB1c2Vycy4gS2V5cyBtdXN0IGJlIDMtMjUgY2hhcmFjdGVycywgdmFsdWVzIG11c3QgYmUgMS0yNTYgY2hhcmFjdGVycywgd2l0aCBhIG1heGltdW0gb2YgMjAga2V5LXZhbHVlIHBhaXJzLko9eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgInNlY3VyaXR5X2NsZWFyYW5jZSI6ICJsZXZlbDIifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAISfwoKZmlyc3RfbmFtZRgVIAEoCUJmGAGSQVkyT1tERVBSRUNBVEVEXSBVc2UgZ2l2ZW5fbmFtZSBpbnN0ZWFkLiBVc2VyJ3MgZ2l2ZW4gbmFtZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycy5KBiJKb2huIrpIBXIDGMgBSAWIAQESfwoJbGFzdF9uYW1lGBYgASgJQmcYAZJBWjJRW0RFUFJFQ0FURURdIFVzZSBmYW1pbHlfbmFtZSBpbnN0ZWFkLiBVc2VyJ3MgZmFtaWx5IG5hbWUuIE1heGltdW0gMjAwIGNoYXJhY3RlcnMuSgUiRG9lIrpIBXIDGMgBSAaIAQEShAMKEnByZWZlcnJlZF91c2VybmFtZRgKIAEoCULiApJB1gIyvwJVcGRhdGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIHVzZXJuYW1lIGZvciBkaXNwbGF5IGFuZCBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4gVXNlIHRoaXMgZmllbGQgdG8gc2V0IGEgY3VzdG9tIHVzZXJuYW1lIHRoYXQgdGhlIHVzZXIgcHJlZmVycyB0byBiZSBrbm93biBieSwgd2hpY2ggbWF5IGRpZmZlciBmcm9tIHRoZWlyIGVtYWlsIG9yIGZvcm1hbCBuYW1lLiBUaGlzIHVzZXJuYW1lIGFwcGVhcnMgaW4gdXNlciBpbnRlcmZhY2VzLCBtZW50aW9ucywgYW5kIGluZm9ybWFsIGNvbW11bmljYXRpb25zLiBNYXhpbXVtIDUxMiBjaGFyYWN0ZXJzIGFsbG93ZWQuShIiSm9obiBNaWNoYWVsIERvZSK6SAVyAxiABEgHiAEBEqkDCgdwaWN0dXJlGAsgASgJQpIDkkGGAzLhAlVwZGF0ZXMgdGhlIFVSTCB0byB0aGUgdXNlcidzIHByb2ZpbGUgcGljdHVyZSBvciBhdmF0YXIgaW1hZ2UuIFVzZSB0aGlzIGZpZWxkIHRvIHNldCBvciBjaGFuZ2UgdGhlIHVzZXIncyBwcm9maWxlIHBob3RvIHRoYXQgYXBwZWFycyBpbiB1c2VyIGludGVyZmFjZXMsIGRpcmVjdG9yeSBsaXN0aW5ncywgYW5kIGNvbGxhYm9yYXRpdmUgZmVhdHVyZXMuIFRoZSBVUkwgc2hvdWxkIHBvaW50IHRvIGEgcHVibGljbHkgYWNjZXNzaWJsZSBpbWFnZSBmaWxlLiBTdXBwb3J0ZWQgZm9ybWF0cyB0eXBpY2FsbHkgaW5jbHVkZSBKUEVHLCBQTkcsIGFuZCBHSUYuIE1heGltdW0gVVJMIGxlbmd0aCBpcyAyMDQ4IGNoYXJhY3RlcnMuSiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hdmF0YXIuanBnIrpIBXIDGIAQSAiIAQES9gIKBmdlbmRlchgMIAEoCULgApJB3AIy0QJVcGRhdGVzIHRoZSB1c2VyJ3MgZ2VuZGVyIGlkZW50aXR5IGluZm9ybWF0aW9uLiBVc2UgdGhpcyBmaWVsZCB0byBzdG9yZSB0aGUgdXNlcidzIGdlbmRlciBpZGVudGl0eSBmb3IgcGVyc29uYWxpemF0aW9uLCBjb21wbGlhbmNlLCBvciByZXBvcnRpbmcgcHVycG9zZXMuIFRoaXMgZmllbGQgc3VwcG9ydHMgYW55IHN0cmluZyB2YWx1ZSB0byBhY2NvbW1vZGF0ZSBkaXZlcnNlIGdlbmRlciBpZGVudGl0aWVzIGFuZCBzaG91bGQgYmUgaGFuZGxlZCB3aXRoIGFwcHJvcHJpYXRlIHByaXZhY3kgY29uc2lkZXJhdGlvbnMgYWNjb3JkaW5nIHRvIHlvdXIgb3JnYW5pemF0aW9uJ3MgcG9saWNpZXMuSgYibWFsZSJICYgBARLVAwoGZ3JvdXBzGA0gAygJQsQDkkGrAzKLA1VwZGF0ZXMgdGhlIGxpc3Qgb2YgZ3JvdXAgbmFtZXMgdGhlIHVzZXIgYmVsb25ncyB0byB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi4gVXNlIHRoaXMgZmllbGQgdG8gbWFuYWdlIHRoZSB1c2VyJ3MgZ3JvdXAgbWVtYmVyc2hpcHMgZm9yIHJvbGUtYmFzZWQgYWNjZXNzIGNvbnRyb2wsIHRlYW0gYXNzaWdubWVudHMsIG9yIG9yZ2FuaXphdGlvbmFsIHN0cnVjdHVyZS4gR3JvdXBzIGFyZSB0eXBpY2FsbHkgdXNlZCBmb3IgcGVybWlzc2lvbiBtYW5hZ2VtZW50IGFuZCBjb2xsYWJvcmF0aXZlIGFjY2Vzcy4gRWFjaCBncm91cCBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgbGlzdCwgMS0yNTAgY2hhcmFjdGVycyBsb25nLCB3aXRoIGEgbWF4aW11bSBvZiA1MCBncm91cHMgcGVyIHVzZXIuShtbImVuZ2luZWVyaW5nIiwgIm1hbmFnZXJzIl26SBKSAQ8IABAyGAEiB3IFEAEY+gEaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUN1c3RvbUF0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19naXZlbl9uYW1lQg4KDF9mYW1pbHlfbmFtZUIHCgVfbmFtZUIJCgdfbG9jYWxlQg8KDV9waG9uZV9udW1iZXJCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUIVChNfcHJlZmVycmVkX3VzZXJuYW1lQgoKCF9waWN0dXJlQgkKB19nZW5kZXJKBAgBEAJKBAgGEAcinQcKBkludml0ZRJcCg9vcmdhbml6YXRpb25faWQYASABKAlCQ5JBQDItVGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCB0aGUgaW52aXRlIGJlbG9uZ3MuSg8ib3JnXzk4NzY1NDMyMSISdwoHdXNlcl9pZBgCIAEoCUJmkkFjMlNVc2VyIElEIHRvIHdob20gdGhlIGludml0ZSBpcyBzZW50LiBNYXkgYmUgZW1wdHkgaWYgdGhlIHVzZXIgaGFzIG5vdCBzaWduZWQgdXAgeWV0LkoMInVzcl8xMjM0NTYiEnEKDWludml0ZXJfZW1haWwYAyABKAlCVZJBUjI7SWRlbnRpZmllciBvZiB0aGUgdXNlciBvciBzeXN0ZW0gdGhhdCBpbml0aWF0ZWQgdGhlIGludml0ZS5KEyJhZG1pbkBleGFtcGxlLmNvbSJIAIgBARJwCgZzdGF0dXMYBCABKAlCYJJBXTJJQ3VycmVudCBzdGF0dXMgb2YgdGhlIGludml0ZSAoZS5nLiwgcGVuZGluZywgYWNjZXB0ZWQsIGV4cGlyZWQsIHJldm9rZWQpLkoQInBlbmRpbmdfaW52aXRlIhJ+CgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEJOkkFLMjFUaW1lc3RhbXAgd2hlbiB0aGUgaW52aXRlIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuShYiMjAyNS0wNy0xMFQwODowMDowMFoiEnIKCmV4cGlyZXNfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQkKSQT8yJVRoZSB0aW1lIGF0IHdoaWNoIHRoZSBpbnZpdGUgZXhwaXJlcy5KFiIyMDI1LTEyLTMxVDIzOjU5OjU5WiIShQEKCXJlc2VudF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCVpJBUzI5VGltZXN0YW1wIHdoZW4gdGhlIGludml0ZSB3YXMgbGFzdCByZXNlbnQsIGlmIGFwcGxpY2FibGUuShYiMjAyNS0wNy0xNVQwOTozMDowMFoiEkkKDHJlc2VudF9jb3VudBgIIAEoBUIzkkEwMitOdW1iZXIgb2YgdGltZXMgdGhlIGludml0ZSBoYXMgYmVlbiByZXNlbnQuSgEyQhAKDl9pbnZpdGVyX2VtYWlsIo8DChNSZXNlbmRJbnZpdGVSZXF1ZXN0EsMBCg9vcmdhbml6YXRpb25faWQYASABKAlCqQGSQZYBMnxVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uIGNvbnRhaW5pbmcgdGhlIHBlbmRpbmcgaW52aXRhdGlvbi4gTXVzdCBzdGFydCB3aXRoICdvcmdfJyBhbmQgYmUgMS0zMiBjaGFyYWN0ZXJzIGxvbmcuShYib3JnXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQARggOgRvcmdfErEBCgJpZBgCIAEoCUKkAZJBkQEyd1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRCBvZiB0aGUgdXNlciB3aG8gaGFzIGEgcGVuZGluZyBpbnZpdGF0aW9uLiBNdXN0IHN0YXJ0IHdpdGggJ3Vzcl8nIGFuZCBiZSAxOS0yNSBjaGFyYWN0ZXJzIGxvbmcuShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQExgZOgR1c3JfItkCChRSZXNlbmRJbnZpdGVSZXNwb25zZRLAAgoGaW52aXRlGAEgASgLMhkuc2NhbGVraXQudjEudXNlcnMuSW52aXRlQpQCkkGQAjKBAVVwZGF0ZWQgaW52aXRhdGlvbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzZW50IGludml0YXRpb24gZGV0YWlscywgaW5jbHVkaW5nIG5ldyBleHBpcmF0aW9uIHRpbWUgYW5kIGluY3JlbWVudGVkIHJlc2VuZCBjb3VudGVyLkqJAXsib3JnYW5pemF0aW9uX2lkIjogIm9yZ18xMjMiLCAidXNlcl9pZCI6ICJ1c3JfNDU2IiwgInN0YXR1cyI6ICJwZW5kaW5nX2ludml0ZSIsICJleHBpcmVzX2F0IjogIjIwMjUtMTItMzFUMjM6NTk6NTlaIiwgInJlc2VudF9jb3VudCI6IDJ9ItgBChRMaXN0VXNlclJvbGVzUmVxdWVzdBJnCg9vcmdhbml6YXRpb25faWQYASABKAlCTpJBQDImVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBvcmdhbml6YXRpb25KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SAhyBjoEb3JnXxJXCgd1c2VyX2lkGAIgASgJQkaSQTgyHlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdXNlckoWInVzcl8xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgR1c3JfImoKFUxpc3RVc2VyUm9sZXNSZXNwb25zZRJRCgVyb2xlcxgBIAMoCzIZLnNjYWxla2l0LnYxLmNvbW1vbnMuUm9sZUInkkEkMiJMaXN0IG9mIHJvbGVzIGFzc2lnbmVkIHRvIHRoZSB1c2VyIr8CChZBc3NpZ25Vc2VyUm9sZXNSZXF1ZXN0EmcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJOkkFAMiZVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG9yZ2FuaXphdGlvbkoWIm9yZ18xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgRvcmdfElcKB3VzZXJfaWQYAiABKAlCRpJBODIeVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB1c2VyShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgIcgY6BHVzcl8SYwoFcm9sZXMYAyADKAsyJC5zY2FsZWtpdC52MS51c2Vycy5Bc3NpZ25Sb2xlUmVxdWVzdEIukkElMiNMaXN0IG9mIHJvbGVzIHRvIGFzc2lnbiB0byB0aGUgdXNlcrpIA8gBASKkAQoRQXNzaWduUm9sZVJlcXVlc3QSSgoCaWQYASABKAlCPhgBkkE5Mh5VbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJvbGVKFyJyb2xlXzEyMzRhYmNkNTY3OGVmZ2giEkMKCXJvbGVfbmFtZRgCIAEoCUIwkkEkMhhVbmlxdWUgbmFtZSBmb3IgdGhlIHJvbGVKCCJ2aWV3ZXIiukgGcgQQABhkInoKF0Fzc2lnblVzZXJSb2xlc1Jlc3BvbnNlEl8KBXJvbGVzGAEgAygLMhkuc2NhbGVraXQudjEuY29tbW9ucy5Sb2xlQjWSQTIyMExpc3Qgb2YgYWxsIHJvbGVzIGN1cnJlbnRseSBhc3NpZ25lZCB0byB0aGUgdXNlciK0AgoVUmVtb3ZlVXNlclJvbGVSZXF1ZXN0EmcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJOkkFAMiZVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG9yZ2FuaXphdGlvbkoWIm9yZ18xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgRvcmdfElcKB3VzZXJfaWQYAiABKAlCRpJBODIeVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB1c2VyShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgIcgY6BHVzcl8SWQoJcm9sZV9uYW1lGAMgASgJQkaSQUMyKFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcm9sZSB0byByZW1vdmVKFyJyb2xlXzEyMzRhYmNkNTY3OGVmZ2giIt4BChpMaXN0VXNlclBlcm1pc3Npb25zUmVxdWVzdBJnCg9vcmdhbml6YXRpb25faWQYASABKAlCTpJBQDImVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBvcmdhbml6YXRpb25KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SAhyBjoEb3JnXxJXCgd1c2VyX2lkGAIgASgJQkaSQTgyHlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdXNlckoWInVzcl8xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgR1c3JfIvoCCgpQZXJtaXNzaW9uElEKAmlkGAEgASgJQkWSQT8yJFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGVybWlzc2lvbkoXInBlcm1fMTIzNGFiY2Q1Njc4ZWZnaCLgQQMSTAoEbmFtZRgCIAEoCUI+kkE7MilVbmlxdWUgbmFtZSBpZGVudGlmaWVyIGZvciB0aGUgcGVybWlzc2lvbkoOInVzZXJzOmNyZWF0ZSISaAoLZGVzY3JpcHRpb24YAyABKAlCU5JBUDIpRGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgcGVybWlzc2lvbiBhbGxvd3NKIyJBbGxvd3MgY3JlYXRpbmcgbmV3IHVzZXIgYWNjb3VudHMiEmEKBHRhZ3MYBCADKAlCU5JBQTIhVGFncyBmb3IgY2F0ZWdvcml6aW5nIHBlcm1pc3Npb25zShxbInVzZXItbWFuYWdlbWVudCIsICJhZG1pbiJd+tLkkwIJEgdQUkVWSUVXIoIBChtMaXN0VXNlclBlcm1pc3Npb25zUmVzcG9uc2USYwoLcGVybWlzc2lvbnMYASADKAsyHS5zY2FsZWtpdC52MS51c2Vycy5QZXJtaXNzaW9uQi+SQSwyKkxpc3Qgb2YgcGVybWlzc2lvbnMgdGhlIHVzZXIgaGFzIGFjY2VzcyB0bzLGWAoLVXNlclNlcnZpY2USuAMKB0dldFVzZXISIS5zY2FsZWtpdC52MS51c2Vycy5HZXRVc2VyUmVxdWVzdBoiLnNjYWxla2l0LnYxLnVzZXJzLkdldFVzZXJSZXNwb25zZSLlApJBwQIKBVVzZXJzEghHZXQgdXNlchqOAVJldHJpZXZlcyBhbGwgZGV0YWlscyBmb3IgYSB1c2VyIGJ5IHN5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRCBvciBleHRlcm5hbCBJRC4gVGhlIHJlc3BvbnNlIGluY2x1ZGVzIG9yZ2FuaXphdGlvbiBtZW1iZXJzaGlwcyBhbmQgdXNlciBtZXRhZGF0YS5KnAEKAzIwMBKUAQpqVXNlciBkZXRhaWxzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgZnVsbCB1c2VyIG9iamVjdCB3aXRoIHN5c3RlbS1nZW5lcmF0ZWQgZmllbGRzIGFuZCB0aW1lc3RhbXBzLhImCiQaIi5zY2FsZWtpdC52MS51c2Vycy5HZXRVc2VyUmVzcG9uc2WCtRgCGESC0+STAhQSEi9hcGkvdjEvdXNlcnMve2lkfRK6AwoOR2V0Q3VycmVudFVzZXISKC5zY2FsZWtpdC52MS51c2Vycy5HZXRDdXJyZW50VXNlclJlcXVlc3QaKS5zY2FsZWtpdC52MS51c2Vycy5HZXRDdXJyZW50VXNlclJlc3BvbnNlItICkkGfAgoFVXNlcnMSFkdldCBhdXRoZW50aWNhdGVkIHVzZXIangFSZXRyaWV2ZXMgZGV0YWlscyBmb3IgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXIuIFJldHVybnMgdGhlIHNhbWUgdXNlciBvYmplY3QgYXMgR2V0VXNlciBidXQgdXNlcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgSUQgZnJvbSB0aGUgc2Vzc2lvbiBjb250ZXh0LkpdCgMyMDASVgosQ3VycmVudCB1c2VyIGRldGFpbHMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4SJgokGiIuc2NhbGVraXQudjEudXNlcnMuR2V0VXNlclJlc3BvbnNlgrUYAhgQ+tLkkwIJEgdQUkVWSUVXgtPkkwIUEhIvYXBpL3YxL3VzZXJzOnRoaXMSoAQKCUxpc3RVc2VycxIjLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2Vyc1JlcXVlc3QaJC5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlcnNSZXNwb25zZSLHA5JBqAMKBVVzZXJzEh1MaXN0IGFsbCB1c2VycyBpbiBlbnZpcm9ubWVudBq8AlJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCB1c2VycyBhY3Jvc3MgeW91ciBlbnRpcmUgZW52aXJvbm1lbnQuIFVzZSB0aGlzIGVuZHBvaW50IHRvIHZpZXcgYWxsIHVzZXJzIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgb3JnYW5pemF0aW9uIG1lbWJlcnNoaXBzLiBUaGlzIGlzIHVzZWZ1bCBmb3IgYWRtaW5pc3RyYXRpdmUgcHVycG9zZXMsIHVzZXIgYXVkaXRzLCBvciB3aGVuIHlvdSBuZWVkIHRvIHNlZSBhbGwgdXNlcnMgaW4geW91ciBTY2FsZWtpdCBlbnZpcm9ubWVudC4gU3VwcG9ydHMgcGFnaW5hdGlvbiBmb3IgbGFyZ2UgdXNlciBiYXNlcy5KQQoDMjAwEjoKDkxpc3Qgb2YgdXNlcnMuEigKJhokLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2Vyc1Jlc3BvbnNlgrUYAhhEgtPkkwIPEg0vYXBpL3YxL3VzZXJzEssDCgtTZWFyY2hVc2VycxIlLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaFVzZXJzUmVxdWVzdBomLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaFVzZXJzUmVzcG9uc2Ui7AKSQbcCCgVVc2VycxIMU2VhcmNoIHVzZXJzGoUBU2VhcmNoZXMgZm9yIHVzZXJzIGluIHRoZSBlbnZpcm9ubWVudCBieSBlbWFpbCwgdXNlciBJRCwgb3IgZXh0ZXJuYWwgSUQuIFJldHVybnMgYWxsIHVzZXJzIHRoYXQgbWF0Y2ggdGhlIHF1ZXJ5LiBTdXBwb3J0cyBwYWdpbmF0aW9uLkqXAQoDMjAwEo8BCmFSZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyB1c2VycyBhbmQgYSBwYWdlIHRva2VuIGZvciBwYWdpbmF0aW9uIGlmIHRoZXJlIGFyZSBhZGRpdGlvbmFsIHJlc3VsdHMuEioKKBomLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaFVzZXJzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAhYSFC9hcGkvdjEvdXNlcnM6c2VhcmNoEuAEChdTZWFyY2hPcmdhbml6YXRpb25Vc2VycxIxLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBoyLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2Ui3QOSQYgDCgVVc2VycxIZU2VhcmNoIG9yZ2FuaXphdGlvbiB1c2VycxqlAVNlYXJjaGVzIGZvciB1c2VycyB3aXRoaW4gYSBzcGVjaWZpYyBvcmdhbml6YXRpb24gYnkgZW1haWwsIHVzZXIgSUQsIG9yIGV4dGVybmFsIElELiBSZXR1cm5zIGFsbCB1c2VycyBpbiB0aGUgb3JnYW5pemF0aW9uIHRoYXQgbWF0Y2ggdGhlIHF1ZXJ5LiBTdXBwb3J0cyBwYWdpbmF0aW9uLkq7AQoDMjAwErMBCnlSZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyB1c2VycyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbiBhbmQgYSBwYWdlIHRva2VuIGZvciBwYWdpbmF0aW9uIGlmIHRoZXJlIGFyZSBhZGRpdGlvbmFsIHJlc3VsdHMuEjYKNBoyLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAjYSNC9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2VyczpzZWFyY2gSlgUKClVwZGF0ZVVzZXISJC5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyUmVxdWVzdBolLnNjYWxla2l0LnYxLnVzZXJzLlVwZGF0ZVVzZXJSZXNwb25zZSK6BJJBkAQKBVVzZXJzEhdVcGRhdGUgdXNlciBpbmZvcm1hdGlvbhrhAk1vZGlmaWVzIHVzZXIgYWNjb3VudCBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgcHJvZmlsZSBkZXRhaWxzLCBtZXRhZGF0YSwgYW5kIGV4dGVybmFsIElELiBVc2UgdGhpcyBlbmRwb2ludCB0byB1cGRhdGUgYSB1c2VyJ3MgcGVyc29uYWwgaW5mb3JtYXRpb24sIGNvbnRhY3QgZGV0YWlscywgb3IgY3VzdG9tIG1ldGFkYXRhLiBZb3UgY2FuIHVwZGF0ZSB0aGUgdXNlcidzIHByb2ZpbGUsIHBob25lIG51bWJlciwgYW5kIG1ldGFkYXRhIGZpZWxkcy4gTm90ZSB0aGF0IGZpZWxkcyBsaWtlIHVzZXIgSUQsIGVtYWlsIGFkZHJlc3MsIGVudmlyb25tZW50IElELCBhbmQgY3JlYXRpb24gdGltZSBjYW5ub3QgYmUgbW9kaWZpZWQuSokBCgMyMDASgQEKVFVzZXIgdXBkYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIG1vZGlmaWVkIHVzZXIgb2JqZWN0IHdpdGggdXBkYXRlZCB0aW1lc3RhbXBzLhIpCicaJS5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyUmVzcG9uc2WCtRgCGESC0+STAho6BHVzZXIyEi9hcGkvdjEvdXNlcnMve2lkfRL9AwoKRGVsZXRlVXNlchIkLnNjYWxla2l0LnYxLnVzZXJzLkRlbGV0ZVVzZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IrADkkGMAwoFVXNlcnMSF0RlbGV0ZSB1c2VyIHBlcm1hbmVudGx5GrACUGVybWFuZW50bHkgcmVtb3ZlcyBhIHVzZXIgZnJvbSB5b3VyIGVudmlyb25tZW50IGFuZCBkZWxldGVzIGFsbCBhc3NvY2lhdGVkIGRhdGEuIFVzZSB0aGlzIGVuZHBvaW50IHdoZW4geW91IG5lZWQgdG8gY29tcGxldGVseSByZW1vdmUgYSB1c2VyIGFjY291bnQuIFRoaXMgYWN0aW9uIGRlbGV0ZXMgdGhlIHVzZXIncyBwcm9maWxlLCBtZW1iZXJzaGlwcywgYW5kIGFsbCByZWxhdGVkIGRhdGEgYWNyb3NzIGFsbCBvcmdhbml6YXRpb25zLiBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgdW5kb25lLCBzbyB1c2Ugd2l0aCBjYXV0aW9uLko3CgMyMDASMAouVXNlciBzdWNjZXNzZnVsbHkgZGVsZXRlZC4gTm8gY29udGVudCByZXR1cm5lZIK1GAIYRILT5JMCFCoSL2FwaS92MS91c2Vycy97aWR9EqgFChBDcmVhdGVNZW1iZXJzaGlwEiouc2NhbGVraXQudjEudXNlcnMuQ3JlYXRlTWVtYmVyc2hpcFJlcXVlc3QaKy5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVNZW1iZXJzaGlwUmVzcG9uc2UiugSSQd4DCgVVc2VycxIhQWRkIGV4aXN0aW5nIHVzZXIgdG8gb3JnYW5pemF0aW9uGpUCQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIG9yZ2FuaXphdGlvbiBhbmQgYXNzaWducyB0aGVtIHNwZWNpZmljIHJvbGVzIGFuZCBwZXJtaXNzaW9ucy4gVXNlIHRoaXMgZW5kcG9pbnQgd2hlbiB5b3Ugd2FudCB0byBncmFudCBhbiBleGlzdGluZyB1c2VyIGFjY2VzcyB0byBhIHBhcnRpY3VsYXIgb3JnYW5pemF0aW9uLiBZb3UgY2FuIHNwZWNpZnkgcm9sZXMsIG1ldGFkYXRhLCBhbmQgb3RoZXIgbWVtYmVyc2hpcCBkZXRhaWxzIGR1cmluZyB0aGUgaW52aXRhdGlvbiBwcm9jZXNzLkqZAQoDMjAxEpEBCl5Vc2VyIHN1Y2Nlc3NmdWxseSBhZGRlZCB0byB0aGUgb3JnYW5pemF0aW9uLiBSZXR1cm5zIGRldGFpbHMgb2YgdGhlIHVwZGF0ZWQgbWVtYmVyc2hpcCBkZXRhaWxzEi8KLRorLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZU1lbWJlcnNoaXBSZXNwb25zZYK1GAIYRILT5JMCTDoKbWVtYmVyc2hpcCI+L2FwaS92MS9tZW1iZXJzaGlwcy9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3tpZH0S/QMKEERlbGV0ZU1lbWJlcnNoaXASKi5zY2FsZWtpdC52MS51c2Vycy5EZWxldGVNZW1iZXJzaGlwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSKkA5JB1AIKBVVzZXJzEidEZWxldGUgb3JnYW5pemF0aW9uIG1lbWJlcnNoaXAgZm9yIHVzZXIa3AFSZW1vdmVzIGEgdXNlciBmcm9tIGFuIG9yZ2FuaXphdGlvbiBieSB1c2VyIElEIG9yIGV4dGVybmFsIElELiBJZiB0aGUgdXNlciBoYXMgbm8gbWVtYmVyc2hpcHMgbGVmdCBhbmQgY2FzY2FkZSBpcyB0cnVlLCB0aGUgdXNlciBpcyBhbHNvIGRlbGV0ZWQuIFRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZSBhbmQgbWF5IGFsc28gcmVtb3ZlIHJlbGF0ZWQgZ3JvdXAgbWVtYmVyc2hpcHMuSkMKAzIwMBI8CjpVc2VyIHN1Y2Nlc3NmdWxseSBtYXJrZWQgZm9yIGRlbGV0aW9uLiBObyBjb250ZW50IHJldHVybmVkgrUYAhhEgtPkkwJAKj4vYXBpL3YxL21lbWJlcnNoaXBzL29yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbl9pZH0vdXNlcnMve2lkfRL9AwoQVXBkYXRlTWVtYmVyc2hpcBIqLnNjYWxla2l0LnYxLnVzZXJzLlVwZGF0ZU1lbWJlcnNoaXBSZXF1ZXN0Gisuc2NhbGVraXQudjEudXNlcnMuVXBkYXRlTWVtYmVyc2hpcFJlc3BvbnNlIo8DkkGzAgoFVXNlcnMSJ1VwZGF0ZSBvcmdhbml6YXRpb24gbWVtYmVyc2hpcCBmb3IgdXNlchqDAVVwZGF0ZXMgYSB1c2VyJ3MgbWVtYmVyc2hpcCBkZXRhaWxzIHdpdGhpbiBhbiBvcmdhbml6YXRpb24gYnkgdXNlciBJRCBvciBleHRlcm5hbCBJRC4gWW91IGNhbiB1cGRhdGUgcm9sZXMgYW5kIG1lbWJlcnNoaXAgbWV0YWRhdGEuSnsKAzIwMBJ0CkFNZW1iZXJzaGlwIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSB1cGRhdGVkIHVzZXIgb2JqZWN0LhIvCi0aKy5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVNZW1iZXJzaGlwUmVzcG9uc2WCtRgCGESC0+STAkw6Cm1lbWJlcnNoaXAyPi9hcGkvdjEvbWVtYmVyc2hpcHMvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2Vycy97aWR9EqwGChdDcmVhdGVVc2VyQW5kTWVtYmVyc2hpcBIxLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJBbmRNZW1iZXJzaGlwUmVxdWVzdBoyLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJBbmRNZW1iZXJzaGlwUmVzcG9uc2UiqQWSQeQECgVVc2VycxIfQ3JlYXRlIG5ldyB1c2VyIGluIG9yZ2FuaXphdGlvbhqDA0NyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50IGFuZCBpbW1lZGlhdGVseSBhZGRzIHRoZW0gdG8gdGhlIHNwZWNpZmllZCBvcmdhbml6YXRpb24uIFVzZSB0aGlzIGVuZHBvaW50IHdoZW4geW91IHdhbnQgdG8gY3JlYXRlIGEgdXNlciBhbmQgZ3JhbnQgdGhlbSBhY2Nlc3MgdG8gYW4gb3JnYW5pemF0aW9uIGluIGEgc2luZ2xlIG9wZXJhdGlvbi4gWW91IGNhbiBwcm92aWRlIHVzZXIgcHJvZmlsZSBpbmZvcm1hdGlvbiwgYXNzaWduIHJvbGVzLCBhbmQgY29uZmlndXJlIG1lbWJlcnNoaXAgbWV0YWRhdGEuIFRoZSB1c2VyIHJlY2VpdmVzIGFuIGFjdGl2YXRpb24gZW1haWwgdW5sZXNzIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBpbiB0aGUgb3JnYW5pemF0aW9uIHNldHRpbmdzLkqzAQoDMjAxEqsBCnFVc2VyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSBjcmVhdGVkIHVzZXIgb2JqZWN0LCBpbmNsdWRpbmcgc3lzdGVtLWdlbmVyYXRlZCBpZGVudGlmaWVycyBhbmQgdGltZXN0YW1wcxI2CjQaMi5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVVc2VyQW5kTWVtYmVyc2hpcFJlc3BvbnNlgrUYAhhEgtPkkwI1OgR1c2VyIi0vYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbl9pZH0vdXNlcnMS4wQKFUxpc3RPcmdhbml6YXRpb25Vc2VycxIvLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaMC5zY2FsZWtpdC52MS51c2Vycy5MaXN0T3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSLmA5JBpwMKBVVzZXJzEhdMaXN0IG9yZ2FuaXphdGlvbiB1c2VycxqHAlJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCB1c2VycyB3aG8gYXJlIG1lbWJlcnMgb2YgdGhlIHNwZWNpZmllZCBvcmdhbml6YXRpb24uIFVzZSB0aGlzIGVuZHBvaW50IHRvIHZpZXcgYWxsIHVzZXJzIHdpdGggYWNjZXNzIHRvIGEgcGFydGljdWxhciBvcmdhbml6YXRpb24sIGluY2x1ZGluZyB0aGVpciByb2xlcywgbWV0YWRhdGEsIGFuZCBtZW1iZXJzaGlwIGRldGFpbHMuIFN1cHBvcnRzIHBhZ2luYXRpb24gZm9yIGxhcmdlIHVzZXIgbGlzdHMuSnsKAzIwMBJ0CjxTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBsaXN0IG9mIHVzZXJzIGluIHRoZSBvcmdhbml6YXRpb24SNAoyGjAuc2NhbGVraXQudjEudXNlcnMuTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2WCtRgCGESC0+STAi8SLS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2VycxKSEAoMUmVzZW5kSW52aXRlEiYuc2NhbGVraXQudjEudXNlcnMuUmVzZW5kSW52aXRlUmVxdWVzdBonLnNjYWxla2l0LnYxLnVzZXJzLlJlc2VuZEludml0ZVJlc3BvbnNlIrAPkkHaDgoFVXNlcnMSHFJlc2VuZCB1c2VyIGludml0YXRpb24gZW1haWwa4QRSZXNlbmRzIGFuIGludml0YXRpb24gZW1haWwgdG8gYSB1c2VyIHdobyBoYXMgYSBwZW5kaW5nIG9yIGV4cGlyZWQgaW52aXRhdGlvbiBpbiB0aGUgc3BlY2lmaWVkIG9yZ2FuaXphdGlvbi4gSWYgdGhlIGludml0YXRpb24gaGFzIGV4cGlyZWQsIGEgbmV3IGludml0YXRpb24gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIHNlbnQuIElmIHRoZSBpbnZpdGF0aW9uIGlzIHN0aWxsIHZhbGlkLCBhIHJlbWluZGVyIGVtYWlsIHdpbGwgYmUgc2VudCBpbnN0ZWFkLiBVc2UgdGhpcyBlbmRwb2ludCB3aGVuIGEgdXNlciBoYXNuJ3QgcmVzcG9uZGVkIHRvIHRoZWlyIGluaXRpYWwgaW52aXRhdGlvbiBhbmQgeW91IG5lZWQgdG8gc2VuZCB0aGVtIGEgcmVtaW5kZXIgb3Igd2hlbiB0aGUgb3JpZ2luYWwgaW52aXRhdGlvbiBoYXMgZXhwaXJlZC4gVGhlIGludml0YXRpb24gZW1haWwgaW5jbHVkZXMgYSBzZWN1cmUgbWFnaWMgbGluayB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBjb21wbGV0ZSB0aGVpciBhY2NvdW50IHNldHVwIGFuZCBqb2luIHRoZSBvcmdhbml6YXRpb24uIEVhY2ggcmVzZW5kIG9wZXJhdGlvbiBpbmNyZW1lbnRzIHRoZSByZXNlbnQgY291bnRlci5KpwIKAzIwMBKfAgrvAVN1Y2Nlc3NmdWxseSByZXNlbnQgdGhlIGludml0YXRpb24gZW1haWwuIFJldHVybnMgdGhlIHVwZGF0ZWQgaW52aXRhdGlvbiBvYmplY3Qgd2l0aCBvcmdhbml6YXRpb24gSUQsIHVzZXIgSUQsIG1lbWJlcnNoaXAgc3RhdHVzLCB0aW1lc3RhbXBzLCBhbmQgcmVzZW50IGNvdW50LiBJZiBleHBpcmVkLCBhIG5ldyBpbnZpdGF0aW9uIGlzIGNyZWF0ZWQ7IG90aGVyd2lzZSwgdGhlIGV4aXN0aW5nIG9uZSBpcyByZXNlbnQuEisKKRonLnNjYWxla2l0LnYxLnVzZXJzLlJlc2VuZEludml0ZVJlc3BvbnNlSo8CCgM0MDAShwIK3QFJbnZhbGlkIHJlcXVlc3Qg4oCUIGNvbW1vbiBjYXVzZXMgaW5jbHVkZSB1c2VyIElEIG9yIG9yZ2FuaXphdGlvbiBJRCBpcyBpbnZhbGlkLCBmdWxsLXN0YWNrIGF1dGhlbnRpY2F0aW9uIGlzIGRpc2FibGVkLCB1c2VyIHByb2ZpbGUgaXMgbWlzc2luZywgaW52aXRlIGFscmVhZHkgYWNjZXB0ZWQsIG9yIG1pc3NpbmcgZXhwaXJ5IHRpbWUgaW4gdXNlciBtYW5hZ2VtZW50IHNldHRpbmdzLhIlCiMaIS5zY2FsZWtpdC52MS5lcnJkZXRhaWxzLkVycm9ySW5mb0qdAgoDNDA0EpUCCusBUmVzb3VyY2Ugbm90IGZvdW5kIOKAlCB0aGUgc3BlY2lmaWVkIHVzZXIsIG9yZ2FuaXphdGlvbiwgbWVtYmVyc2hpcCwgb3IgaW52aXRhdGlvbiBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIHNwZWNpZmllZCBlbnZpcm9ubWVudC4gVmVyaWZ5IHRoYXQgYWxsIElEcyBhcmUgY29ycmVjdCBhbmQgdGhhdCB0aGUgcmVzb3VyY2VzIGV4aXN0IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHJlc2VuZCBhbiBpbnZpdGF0aW9uLhIlCiMaIS5zY2FsZWtpdC52MS5lcnJkZXRhaWxzLkVycm9ySW5mb0ryAgoDNTAwEuoCCsACSW50ZXJuYWwgc2VydmVyIGVycm9yIOKAlCBhbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGludml0YXRpb24gcmVzZW5kIHJlcXVlc3QuIFRoaXMgbWF5IGJlIGR1ZSB0byBkYXRhYmFzZSBjb25uZWN0aXZpdHkgaXNzdWVzLCBwcm9ibGVtcyBnZW5lcmF0aW5nIHRoZSBzZWN1cmUgbWFnaWMgbGluaywgZW1haWwgZGVsaXZlcnkgc2VydmljZSBmYWlsdXJlcywgb3IgdHJhbnNhY3Rpb24gZXJyb3JzIGR1cmluZyBpbnZpdGF0aW9uIHByb2Nlc3NpbmcuIENvbnRhY3Qgc3VwcG9ydCBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4SJQojGiEuc2NhbGVraXQudjEuZXJyZGV0YWlscy5FcnJvckluZm+CtRgCGESC0+STAkY6ASoyQS9hcGkvdjEvaW52aXRlcy9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3tpZH0vcmVzZW5kEt8DCg1MaXN0VXNlclJvbGVzEicuc2NhbGVraXQudjEudXNlcnMuTGlzdFVzZXJSb2xlc1JlcXVlc3QaKC5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlclJvbGVzUmVzcG9uc2Ui+gKSQasCCgVVc2VycxIPTGlzdCB1c2VyIHJvbGVzGpoBUmV0cmlldmVzIGFsbCByb2xlcyBhc3NpZ25lZCB0byBhIHVzZXIgd2l0aGluIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uLiBUaGlzIGluY2x1ZGVzIGJvdGggZGlyZWN0IHJvbGUgYXNzaWdubWVudHMgYW5kIGluaGVyaXRlZCByb2xlcyBmcm9tIHJvbGUgaGllcmFyY2h5Lkp0CgMyMDASbQo9U3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCB0aGUgbGlzdCBvZiByb2xlcyBhc3NpZ25lZCB0byB0aGUgdXNlchIsCioaKC5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlclJvbGVzUmVzcG9uc2WCtRgCGESC0+STAj8SPS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2Vycy97dXNlcl9pZH0vcm9sZXMS4gMKD0Fzc2lnblVzZXJSb2xlcxIpLnNjYWxla2l0LnYxLnVzZXJzLkFzc2lnblVzZXJSb2xlc1JlcXVlc3QaKi5zY2FsZWtpdC52MS51c2Vycy5Bc3NpZ25Vc2VyUm9sZXNSZXNwb25zZSL3ApJBkgIKBVVzZXJzEhRBc3NpZ24gcm9sZXMgdG8gdXNlchqQAUFzc2lnbnMgb25lIG9yIG1vcmUgcm9sZXMgdG8gYSB1c2VyIHdpdGhpbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gVGhpcyBvcGVyYXRpb24gYWRkcyB0byBleGlzdGluZyByb2xlIGFzc2lnbm1lbnRzIHJhdGhlciB0aGFuIHJlcGxhY2luZyB0aGVtLkpgCgMyMDASWQonU3VjY2Vzc2Z1bGx5IGFzc2lnbmVkIHJvbGVzIHRvIHRoZSB1c2VyEi4KLBoqLnNjYWxla2l0LnYxLnVzZXJzLkFzc2lnblVzZXJSb2xlc1Jlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwJGOgVyb2xlcyI9L2FwaS92MS9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3t1c2VyX2lkfS9yb2xlcxKoAwoOUmVtb3ZlVXNlclJvbGUSKC5zY2FsZWtpdC52MS51c2Vycy5SZW1vdmVVc2VyUm9sZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHki0wKSQekBCgVVc2VycxIVUmVtb3ZlIHJvbGUgZnJvbSB1c2VyGpoBUmVtb3ZlcyBhIHNwZWNpZmljIHJvbGUgYXNzaWdubWVudCBmcm9tIGEgdXNlciB3aXRoaW4gYW4gb3JnYW5pemF0aW9uLiBUaGlzIG9ubHkgcmVtb3ZlcyBkaXJlY3Qgcm9sZSBhc3NpZ25tZW50cywgbm90IGluaGVyaXRlZCByb2xlcyBmcm9tIHJvbGUgaGllcmFyY2h5LkosCgMyMDASJQojUm9sZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZCBmcm9tIHVzZXKCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAksqSS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2Vycy97dXNlcl9pZH0vcm9sZXMve3JvbGVfbmFtZX0SmwQKE0xpc3RVc2VyUGVybWlzc2lvbnMSLS5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlclBlcm1pc3Npb25zUmVxdWVzdBouLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2VyUGVybWlzc2lvbnNSZXNwb25zZSKkA5JBzwIKBVVzZXJzEhVMaXN0IHVzZXIgcGVybWlzc2lvbnMatAFSZXRyaWV2ZXMgYWxsIHBlcm1pc3Npb25zIGEgdXNlciBoYXMgYWNjZXNzIHRvIHdpdGhpbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gVGhpcyBpbmNsdWRlcyBwZXJtaXNzaW9ucyBmcm9tIGRpcmVjdCByb2xlIGFzc2lnbm1lbnRzIGFuZCBpbmhlcml0ZWQgcGVybWlzc2lvbnMgZnJvbSByb2xlIGhpZXJhcmNoeS5KeAoDMjAwEnEKO1N1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgdGhlIGxpc3Qgb2YgcGVybWlzc2lvbnMgZm9yIHRoZSB1c2VyEjIKMBouLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2VyUGVybWlzc2lvbnNSZXNwb25zZYK1GAIYRILT5JMCRRJDL2FwaS92MS9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3t1c2VyX2lkfS9wZXJtaXNzaW9ucxrsA5JB6AMKBVVzZXJzEt4DQ29tcHJlaGVuc2l2ZSB1c2VyIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyBpbmNsdWRpbmcgdXNlciBsaWZlY3ljbGUsIG9yZ2FuaXphdGlvbiBtZW1iZXJzaGlwcywgYW5kIGludml0YXRpb24gd29ya2Zsb3dzLiBUaGlzIHNlcnZpY2UgcHJvdmlkZXMgZW5kcG9pbnRzIGZvciBjcmVhdGluZywgcmV0cmlldmluZywgdXBkYXRpbmcsIGFuZCBkZWxldGluZyB1c2VyIGFjY291bnRzIGFjcm9zcyB5b3VyIFNjYWxla2l0IGVudmlyb25tZW50LiBJdCBzdXBwb3J0cyBib3RoIGluZGl2aWR1YWwgdXNlciBvcGVyYXRpb25zIGFuZCBidWxrIG9wZXJhdGlvbnMgZm9yIHVzZXIgYWRtaW5pc3RyYXRpb24sIGluY2x1ZGluZyB1c2VyIHNlYXJjaCwgcGFnaW5hdGlvbiwgYW5kIG1ldGFkYXRhIG1hbmFnZW1lbnQuIFRoZSBzZXJ2aWNlIGFsc28gaGFuZGxlcyB1c2VyIGludml0YXRpb25zIGFuZCBvcmdhbml6YXRpb24gbWVtYmVyc2hpcCBtYW5hZ2VtZW50LkIxWi9naXRodWIuY29tL3NjYWxla2l0LWluYy9zY2FsZWtpdC9wa2cvZ3JwYy91c2Vyc2IGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_api_field_behavior, file_google_api_visibility, file_google_protobuf_empty, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_scalekit_v1_commons_commons, file_scalekit_v1_options_options]);
24
-
25
- /**
26
- * @generated from message scalekit.v1.users.User
27
- */
28
- export type User = Message<"scalekit.v1.users.User"> & {
29
- /**
30
- * @generated from field: string id = 1;
31
- */
32
- id: string;
33
-
34
- /**
35
- * @generated from field: string environment_id = 2;
36
- */
37
- environmentId: string;
38
-
39
- /**
40
- * @generated from field: google.protobuf.Timestamp create_time = 3;
41
- */
42
- createTime?: Timestamp;
43
-
44
- /**
45
- * @generated from field: google.protobuf.Timestamp update_time = 4;
46
- */
47
- updateTime?: Timestamp;
48
-
49
- /**
50
- * @generated from field: string email = 5;
51
- */
52
- email: string;
53
-
54
- /**
55
- * @generated from field: optional string external_id = 6;
56
- */
57
- externalId?: string;
58
-
59
- /**
60
- * @generated from field: repeated scalekit.v1.commons.OrganizationMembership memberships = 7;
61
- */
62
- memberships: OrganizationMembership[];
63
-
64
- /**
65
- * @generated from field: scalekit.v1.commons.UserProfile user_profile = 8;
66
- */
67
- userProfile?: UserProfile;
68
-
69
- /**
70
- * @generated from field: map<string, string> metadata = 9;
71
- */
72
- metadata: { [key: string]: string };
73
-
74
- /**
75
- * @generated from field: google.protobuf.Timestamp last_login_time = 10;
76
- */
77
- lastLoginTime?: Timestamp;
78
- };
79
-
80
- /**
81
- * Describes the message scalekit.v1.users.User.
82
- * Use `create(UserSchema)` to create a new message.
83
- */
84
- export const UserSchema: GenMessage<User> = /*@__PURE__*/
85
- messageDesc(file_scalekit_v1_users_users, 0);
86
-
87
- /**
88
- * @generated from message scalekit.v1.users.CreateUserAndMembershipRequest
89
- */
90
- export type CreateUserAndMembershipRequest = Message<"scalekit.v1.users.CreateUserAndMembershipRequest"> & {
91
- /**
92
- * @generated from field: string organization_id = 1;
93
- */
94
- organizationId: string;
95
-
96
- /**
97
- * @generated from field: scalekit.v1.users.CreateUser user = 2;
98
- */
99
- user?: CreateUser;
100
-
101
- /**
102
- * @generated from field: optional bool send_invitation_email = 3;
103
- */
104
- sendInvitationEmail?: boolean;
105
- };
106
-
107
- /**
108
- * Describes the message scalekit.v1.users.CreateUserAndMembershipRequest.
109
- * Use `create(CreateUserAndMembershipRequestSchema)` to create a new message.
110
- */
111
- export const CreateUserAndMembershipRequestSchema: GenMessage<CreateUserAndMembershipRequest> = /*@__PURE__*/
112
- messageDesc(file_scalekit_v1_users_users, 1);
113
-
114
- /**
115
- * @generated from message scalekit.v1.users.CreateUserAndMembershipResponse
116
- */
117
- export type CreateUserAndMembershipResponse = Message<"scalekit.v1.users.CreateUserAndMembershipResponse"> & {
118
- /**
119
- * @generated from field: scalekit.v1.users.User user = 1;
120
- */
121
- user?: User;
122
- };
123
-
124
- /**
125
- * Describes the message scalekit.v1.users.CreateUserAndMembershipResponse.
126
- * Use `create(CreateUserAndMembershipResponseSchema)` to create a new message.
127
- */
128
- export const CreateUserAndMembershipResponseSchema: GenMessage<CreateUserAndMembershipResponse> = /*@__PURE__*/
129
- messageDesc(file_scalekit_v1_users_users, 2);
130
-
131
- /**
132
- * @generated from message scalekit.v1.users.UpdateUser
133
- */
134
- export type UpdateUser = Message<"scalekit.v1.users.UpdateUser"> & {
135
- /**
136
- * @generated from field: optional string external_id = 6;
137
- */
138
- externalId?: string;
139
-
140
- /**
141
- * @generated from field: scalekit.v1.users.UpdateUserProfile user_profile = 8;
142
- */
143
- userProfile?: UpdateUserProfile;
144
-
145
- /**
146
- * @generated from field: map<string, string> metadata = 9;
147
- */
148
- metadata: { [key: string]: string };
149
- };
150
-
151
- /**
152
- * Describes the message scalekit.v1.users.UpdateUser.
153
- * Use `create(UpdateUserSchema)` to create a new message.
154
- */
155
- export const UpdateUserSchema: GenMessage<UpdateUser> = /*@__PURE__*/
156
- messageDesc(file_scalekit_v1_users_users, 3);
157
-
158
- /**
159
- * @generated from message scalekit.v1.users.UpdateUserRequest
160
- */
161
- export type UpdateUserRequest = Message<"scalekit.v1.users.UpdateUserRequest"> & {
162
- /**
163
- * @generated from oneof scalekit.v1.users.UpdateUserRequest.identities
164
- */
165
- identities: {
166
- /**
167
- * @generated from field: string id = 1;
168
- */
169
- value: string;
170
- case: "id";
171
- } | {
172
- /**
173
- * @generated from field: string external_id = 2;
174
- */
175
- value: string;
176
- case: "externalId";
177
- } | { case: undefined; value?: undefined };
178
-
179
- /**
180
- * @generated from field: scalekit.v1.users.UpdateUser user = 3;
181
- */
182
- user?: UpdateUser;
183
- };
184
-
185
- /**
186
- * Describes the message scalekit.v1.users.UpdateUserRequest.
187
- * Use `create(UpdateUserRequestSchema)` to create a new message.
188
- */
189
- export const UpdateUserRequestSchema: GenMessage<UpdateUserRequest> = /*@__PURE__*/
190
- messageDesc(file_scalekit_v1_users_users, 4);
191
-
192
- /**
193
- * @generated from message scalekit.v1.users.UpdateUserResponse
194
- */
195
- export type UpdateUserResponse = Message<"scalekit.v1.users.UpdateUserResponse"> & {
196
- /**
197
- * @generated from field: scalekit.v1.users.User user = 1;
198
- */
199
- user?: User;
200
- };
201
-
202
- /**
203
- * Describes the message scalekit.v1.users.UpdateUserResponse.
204
- * Use `create(UpdateUserResponseSchema)` to create a new message.
205
- */
206
- export const UpdateUserResponseSchema: GenMessage<UpdateUserResponse> = /*@__PURE__*/
207
- messageDesc(file_scalekit_v1_users_users, 5);
208
-
209
- /**
210
- * @generated from message scalekit.v1.users.GetUserRequest
211
- */
212
- export type GetUserRequest = Message<"scalekit.v1.users.GetUserRequest"> & {
213
- /**
214
- * @generated from oneof scalekit.v1.users.GetUserRequest.identities
215
- */
216
- identities: {
217
- /**
218
- * @generated from field: string id = 1;
219
- */
220
- value: string;
221
- case: "id";
222
- } | {
223
- /**
224
- * @generated from field: string external_id = 2;
225
- */
226
- value: string;
227
- case: "externalId";
228
- } | { case: undefined; value?: undefined };
229
- };
230
-
231
- /**
232
- * Describes the message scalekit.v1.users.GetUserRequest.
233
- * Use `create(GetUserRequestSchema)` to create a new message.
234
- */
235
- export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
236
- messageDesc(file_scalekit_v1_users_users, 6);
237
-
238
- /**
239
- * @generated from message scalekit.v1.users.GetUserResponse
240
- */
241
- export type GetUserResponse = Message<"scalekit.v1.users.GetUserResponse"> & {
242
- /**
243
- * @generated from field: scalekit.v1.users.User user = 1;
244
- */
245
- user?: User;
246
- };
247
-
248
- /**
249
- * Describes the message scalekit.v1.users.GetUserResponse.
250
- * Use `create(GetUserResponseSchema)` to create a new message.
251
- */
252
- export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
253
- messageDesc(file_scalekit_v1_users_users, 7);
254
-
255
- /**
256
- * @generated from message scalekit.v1.users.GetCurrentUserResponse
257
- */
258
- export type GetCurrentUserResponse = Message<"scalekit.v1.users.GetCurrentUserResponse"> & {
259
- /**
260
- * @generated from field: scalekit.v1.users.User user = 1;
261
- */
262
- user?: User;
263
-
264
- /**
265
- * @generated from field: string current_session_id = 2;
266
- */
267
- currentSessionId: string;
268
- };
269
-
270
- /**
271
- * Describes the message scalekit.v1.users.GetCurrentUserResponse.
272
- * Use `create(GetCurrentUserResponseSchema)` to create a new message.
273
- */
274
- export const GetCurrentUserResponseSchema: GenMessage<GetCurrentUserResponse> = /*@__PURE__*/
275
- messageDesc(file_scalekit_v1_users_users, 8);
276
-
277
- /**
278
- * Empty message - user ID extracted from authentication context
279
- *
280
- * @generated from message scalekit.v1.users.GetCurrentUserRequest
281
- */
282
- export type GetCurrentUserRequest = Message<"scalekit.v1.users.GetCurrentUserRequest"> & {
283
- };
284
-
285
- /**
286
- * Describes the message scalekit.v1.users.GetCurrentUserRequest.
287
- * Use `create(GetCurrentUserRequestSchema)` to create a new message.
288
- */
289
- export const GetCurrentUserRequestSchema: GenMessage<GetCurrentUserRequest> = /*@__PURE__*/
290
- messageDesc(file_scalekit_v1_users_users, 9);
291
-
292
- /**
293
- * @generated from message scalekit.v1.users.ListOrganizationUsersRequest
294
- */
295
- export type ListOrganizationUsersRequest = Message<"scalekit.v1.users.ListOrganizationUsersRequest"> & {
296
- /**
297
- * @generated from field: string organization_id = 1;
298
- */
299
- organizationId: string;
300
-
301
- /**
302
- * @generated from field: uint32 page_size = 2;
303
- */
304
- pageSize: number;
305
-
306
- /**
307
- * @generated from field: string page_token = 3;
308
- */
309
- pageToken: string;
310
- };
311
-
312
- /**
313
- * Describes the message scalekit.v1.users.ListOrganizationUsersRequest.
314
- * Use `create(ListOrganizationUsersRequestSchema)` to create a new message.
315
- */
316
- export const ListOrganizationUsersRequestSchema: GenMessage<ListOrganizationUsersRequest> = /*@__PURE__*/
317
- messageDesc(file_scalekit_v1_users_users, 10);
318
-
319
- /**
320
- * @generated from message scalekit.v1.users.ListOrganizationUsersResponse
321
- */
322
- export type ListOrganizationUsersResponse = Message<"scalekit.v1.users.ListOrganizationUsersResponse"> & {
323
- /**
324
- * @generated from field: string next_page_token = 1;
325
- */
326
- nextPageToken: string;
327
-
328
- /**
329
- * @generated from field: uint32 total_size = 2;
330
- */
331
- totalSize: number;
332
-
333
- /**
334
- * @generated from field: repeated scalekit.v1.users.User users = 3;
335
- */
336
- users: User[];
337
-
338
- /**
339
- * @generated from field: string prev_page_token = 4;
340
- */
341
- prevPageToken: string;
342
- };
343
-
344
- /**
345
- * Describes the message scalekit.v1.users.ListOrganizationUsersResponse.
346
- * Use `create(ListOrganizationUsersResponseSchema)` to create a new message.
347
- */
348
- export const ListOrganizationUsersResponseSchema: GenMessage<ListOrganizationUsersResponse> = /*@__PURE__*/
349
- messageDesc(file_scalekit_v1_users_users, 11);
350
-
351
- /**
352
- * @generated from message scalekit.v1.users.DeleteMembershipRequest
353
- */
354
- export type DeleteMembershipRequest = Message<"scalekit.v1.users.DeleteMembershipRequest"> & {
355
- /**
356
- * @generated from field: string organization_id = 1;
357
- */
358
- organizationId: string;
359
-
360
- /**
361
- * @generated from oneof scalekit.v1.users.DeleteMembershipRequest.identities
362
- */
363
- identities: {
364
- /**
365
- * @generated from field: string id = 2;
366
- */
367
- value: string;
368
- case: "id";
369
- } | {
370
- /**
371
- * @generated from field: string external_id = 3;
372
- */
373
- value: string;
374
- case: "externalId";
375
- } | { case: undefined; value?: undefined };
376
-
377
- /**
378
- * @generated from field: optional bool cascade = 5;
379
- */
380
- cascade?: boolean;
381
- };
382
-
383
- /**
384
- * Describes the message scalekit.v1.users.DeleteMembershipRequest.
385
- * Use `create(DeleteMembershipRequestSchema)` to create a new message.
386
- */
387
- export const DeleteMembershipRequestSchema: GenMessage<DeleteMembershipRequest> = /*@__PURE__*/
388
- messageDesc(file_scalekit_v1_users_users, 12);
389
-
390
- /**
391
- * @generated from message scalekit.v1.users.CreateMembershipRequest
392
- */
393
- export type CreateMembershipRequest = Message<"scalekit.v1.users.CreateMembershipRequest"> & {
394
- /**
395
- * @generated from field: string organization_id = 1;
396
- */
397
- organizationId: string;
398
-
399
- /**
400
- * @generated from field: scalekit.v1.users.CreateMembership membership = 2;
401
- */
402
- membership?: CreateMembership;
403
-
404
- /**
405
- * @generated from oneof scalekit.v1.users.CreateMembershipRequest.identities
406
- */
407
- identities: {
408
- /**
409
- * @generated from field: string id = 3;
410
- */
411
- value: string;
412
- case: "id";
413
- } | {
414
- /**
415
- * @generated from field: string external_id = 4;
416
- */
417
- value: string;
418
- case: "externalId";
419
- } | { case: undefined; value?: undefined };
420
-
421
- /**
422
- * @generated from field: optional bool send_invitation_email = 5;
423
- */
424
- sendInvitationEmail?: boolean;
425
- };
426
-
427
- /**
428
- * Describes the message scalekit.v1.users.CreateMembershipRequest.
429
- * Use `create(CreateMembershipRequestSchema)` to create a new message.
430
- */
431
- export const CreateMembershipRequestSchema: GenMessage<CreateMembershipRequest> = /*@__PURE__*/
432
- messageDesc(file_scalekit_v1_users_users, 13);
433
-
434
- /**
435
- * @generated from message scalekit.v1.users.CreateMembershipResponse
436
- */
437
- export type CreateMembershipResponse = Message<"scalekit.v1.users.CreateMembershipResponse"> & {
438
- /**
439
- * @generated from field: scalekit.v1.users.User user = 1;
440
- */
441
- user?: User;
442
- };
443
-
444
- /**
445
- * Describes the message scalekit.v1.users.CreateMembershipResponse.
446
- * Use `create(CreateMembershipResponseSchema)` to create a new message.
447
- */
448
- export const CreateMembershipResponseSchema: GenMessage<CreateMembershipResponse> = /*@__PURE__*/
449
- messageDesc(file_scalekit_v1_users_users, 14);
450
-
451
- /**
452
- * @generated from message scalekit.v1.users.ListUsersRequest
453
- */
454
- export type ListUsersRequest = Message<"scalekit.v1.users.ListUsersRequest"> & {
455
- /**
456
- * @generated from field: uint32 page_size = 1;
457
- */
458
- pageSize: number;
459
-
460
- /**
461
- * @generated from field: string page_token = 2;
462
- */
463
- pageToken: string;
464
- };
465
-
466
- /**
467
- * Describes the message scalekit.v1.users.ListUsersRequest.
468
- * Use `create(ListUsersRequestSchema)` to create a new message.
469
- */
470
- export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
471
- messageDesc(file_scalekit_v1_users_users, 15);
472
-
473
- /**
474
- * @generated from message scalekit.v1.users.ListUsersResponse
475
- */
476
- export type ListUsersResponse = Message<"scalekit.v1.users.ListUsersResponse"> & {
477
- /**
478
- * @generated from field: repeated scalekit.v1.users.User users = 1;
479
- */
480
- users: User[];
481
-
482
- /**
483
- * @generated from field: string next_page_token = 2;
484
- */
485
- nextPageToken: string;
486
-
487
- /**
488
- * @generated from field: uint32 total_size = 3;
489
- */
490
- totalSize: number;
491
-
492
- /**
493
- * @generated from field: string prev_page_token = 4;
494
- */
495
- prevPageToken: string;
496
- };
497
-
498
- /**
499
- * Describes the message scalekit.v1.users.ListUsersResponse.
500
- * Use `create(ListUsersResponseSchema)` to create a new message.
501
- */
502
- export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
503
- messageDesc(file_scalekit_v1_users_users, 16);
504
-
505
- /**
506
- * @generated from message scalekit.v1.users.SearchUsersRequest
507
- */
508
- export type SearchUsersRequest = Message<"scalekit.v1.users.SearchUsersRequest"> & {
509
- /**
510
- * @generated from field: string query = 1;
511
- */
512
- query: string;
513
-
514
- /**
515
- * @generated from field: uint32 page_size = 2;
516
- */
517
- pageSize: number;
518
-
519
- /**
520
- * @generated from field: string page_token = 3;
521
- */
522
- pageToken: string;
523
- };
524
-
525
- /**
526
- * Describes the message scalekit.v1.users.SearchUsersRequest.
527
- * Use `create(SearchUsersRequestSchema)` to create a new message.
528
- */
529
- export const SearchUsersRequestSchema: GenMessage<SearchUsersRequest> = /*@__PURE__*/
530
- messageDesc(file_scalekit_v1_users_users, 17);
531
-
532
- /**
533
- * @generated from message scalekit.v1.users.SearchUsersResponse
534
- */
535
- export type SearchUsersResponse = Message<"scalekit.v1.users.SearchUsersResponse"> & {
536
- /**
537
- * @generated from field: string next_page_token = 1;
538
- */
539
- nextPageToken: string;
540
-
541
- /**
542
- * @generated from field: uint32 total_size = 2;
543
- */
544
- totalSize: number;
545
-
546
- /**
547
- * @generated from field: repeated scalekit.v1.users.User users = 3;
548
- */
549
- users: User[];
550
-
551
- /**
552
- * @generated from field: string prev_page_token = 4;
553
- */
554
- prevPageToken: string;
555
- };
556
-
557
- /**
558
- * Describes the message scalekit.v1.users.SearchUsersResponse.
559
- * Use `create(SearchUsersResponseSchema)` to create a new message.
560
- */
561
- export const SearchUsersResponseSchema: GenMessage<SearchUsersResponse> = /*@__PURE__*/
562
- messageDesc(file_scalekit_v1_users_users, 18);
563
-
564
- /**
565
- * @generated from message scalekit.v1.users.DeleteUserRequest
566
- */
567
- export type DeleteUserRequest = Message<"scalekit.v1.users.DeleteUserRequest"> & {
568
- /**
569
- * @generated from oneof scalekit.v1.users.DeleteUserRequest.identities
570
- */
571
- identities: {
572
- /**
573
- * @generated from field: string id = 1;
574
- */
575
- value: string;
576
- case: "id";
577
- } | {
578
- /**
579
- * @generated from field: string external_id = 2;
580
- */
581
- value: string;
582
- case: "externalId";
583
- } | { case: undefined; value?: undefined };
584
- };
585
-
586
- /**
587
- * Describes the message scalekit.v1.users.DeleteUserRequest.
588
- * Use `create(DeleteUserRequestSchema)` to create a new message.
589
- */
590
- export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
591
- messageDesc(file_scalekit_v1_users_users, 19);
592
-
593
- /**
594
- * @generated from message scalekit.v1.users.UpdateMembershipRequest
595
- */
596
- export type UpdateMembershipRequest = Message<"scalekit.v1.users.UpdateMembershipRequest"> & {
597
- /**
598
- * @generated from field: string organization_id = 1;
599
- */
600
- organizationId: string;
601
-
602
- /**
603
- * @generated from oneof scalekit.v1.users.UpdateMembershipRequest.identities
604
- */
605
- identities: {
606
- /**
607
- * @generated from field: string id = 2;
608
- */
609
- value: string;
610
- case: "id";
611
- } | {
612
- /**
613
- * @generated from field: string external_id = 3;
614
- */
615
- value: string;
616
- case: "externalId";
617
- } | { case: undefined; value?: undefined };
618
-
619
- /**
620
- * @generated from field: scalekit.v1.users.UpdateMembership membership = 5;
621
- */
622
- membership?: UpdateMembership;
623
- };
624
-
625
- /**
626
- * Describes the message scalekit.v1.users.UpdateMembershipRequest.
627
- * Use `create(UpdateMembershipRequestSchema)` to create a new message.
628
- */
629
- export const UpdateMembershipRequestSchema: GenMessage<UpdateMembershipRequest> = /*@__PURE__*/
630
- messageDesc(file_scalekit_v1_users_users, 20);
631
-
632
- /**
633
- * @generated from message scalekit.v1.users.UpdateMembership
634
- */
635
- export type UpdateMembership = Message<"scalekit.v1.users.UpdateMembership"> & {
636
- /**
637
- * @generated from field: repeated scalekit.v1.commons.Role roles = 4;
638
- */
639
- roles: Role[];
640
-
641
- /**
642
- * @generated from field: map<string, string> metadata = 7;
643
- */
644
- metadata: { [key: string]: string };
645
- };
646
-
647
- /**
648
- * Describes the message scalekit.v1.users.UpdateMembership.
649
- * Use `create(UpdateMembershipSchema)` to create a new message.
650
- */
651
- export const UpdateMembershipSchema: GenMessage<UpdateMembership> = /*@__PURE__*/
652
- messageDesc(file_scalekit_v1_users_users, 21);
653
-
654
- /**
655
- * @generated from message scalekit.v1.users.CreateMembership
656
- */
657
- export type CreateMembership = Message<"scalekit.v1.users.CreateMembership"> & {
658
- /**
659
- * @generated from field: repeated scalekit.v1.commons.Role roles = 4;
660
- */
661
- roles: Role[];
662
-
663
- /**
664
- * @generated from field: map<string, string> metadata = 7;
665
- */
666
- metadata: { [key: string]: string };
667
-
668
- /**
669
- * @generated from field: optional string inviter_email = 8;
670
- */
671
- inviterEmail?: string;
672
- };
673
-
674
- /**
675
- * Describes the message scalekit.v1.users.CreateMembership.
676
- * Use `create(CreateMembershipSchema)` to create a new message.
677
- */
678
- export const CreateMembershipSchema: GenMessage<CreateMembership> = /*@__PURE__*/
679
- messageDesc(file_scalekit_v1_users_users, 22);
680
-
681
- /**
682
- * @generated from message scalekit.v1.users.UpdateMembershipResponse
683
- */
684
- export type UpdateMembershipResponse = Message<"scalekit.v1.users.UpdateMembershipResponse"> & {
685
- /**
686
- * @generated from field: scalekit.v1.users.User user = 1;
687
- */
688
- user?: User;
689
- };
690
-
691
- /**
692
- * Describes the message scalekit.v1.users.UpdateMembershipResponse.
693
- * Use `create(UpdateMembershipResponseSchema)` to create a new message.
694
- */
695
- export const UpdateMembershipResponseSchema: GenMessage<UpdateMembershipResponse> = /*@__PURE__*/
696
- messageDesc(file_scalekit_v1_users_users, 23);
697
-
698
- /**
699
- * @generated from message scalekit.v1.users.SearchOrganizationUsersRequest
700
- */
701
- export type SearchOrganizationUsersRequest = Message<"scalekit.v1.users.SearchOrganizationUsersRequest"> & {
702
- /**
703
- * @generated from field: string organization_id = 1;
704
- */
705
- organizationId: string;
706
-
707
- /**
708
- * @generated from field: string query = 2;
709
- */
710
- query: string;
711
-
712
- /**
713
- * @generated from field: uint32 page_size = 3;
714
- */
715
- pageSize: number;
716
-
717
- /**
718
- * @generated from field: string page_token = 4;
719
- */
720
- pageToken: string;
721
- };
722
-
723
- /**
724
- * Describes the message scalekit.v1.users.SearchOrganizationUsersRequest.
725
- * Use `create(SearchOrganizationUsersRequestSchema)` to create a new message.
726
- */
727
- export const SearchOrganizationUsersRequestSchema: GenMessage<SearchOrganizationUsersRequest> = /*@__PURE__*/
728
- messageDesc(file_scalekit_v1_users_users, 24);
729
-
730
- /**
731
- * @generated from message scalekit.v1.users.SearchOrganizationUsersResponse
732
- */
733
- export type SearchOrganizationUsersResponse = Message<"scalekit.v1.users.SearchOrganizationUsersResponse"> & {
734
- /**
735
- * @generated from field: string next_page_token = 1;
736
- */
737
- nextPageToken: string;
738
-
739
- /**
740
- * @generated from field: uint32 total_size = 2;
741
- */
742
- totalSize: number;
743
-
744
- /**
745
- * @generated from field: repeated scalekit.v1.users.User users = 3;
746
- */
747
- users: User[];
748
-
749
- /**
750
- * @generated from field: string prev_page_token = 4;
751
- */
752
- prevPageToken: string;
753
- };
754
-
755
- /**
756
- * Describes the message scalekit.v1.users.SearchOrganizationUsersResponse.
757
- * Use `create(SearchOrganizationUsersResponseSchema)` to create a new message.
758
- */
759
- export const SearchOrganizationUsersResponseSchema: GenMessage<SearchOrganizationUsersResponse> = /*@__PURE__*/
760
- messageDesc(file_scalekit_v1_users_users, 25);
761
-
762
- /**
763
- * @generated from message scalekit.v1.users.CreateUser
764
- */
765
- export type CreateUser = Message<"scalekit.v1.users.CreateUser"> & {
766
- /**
767
- * @generated from field: string email = 5;
768
- */
769
- email: string;
770
-
771
- /**
772
- * @generated from field: optional string external_id = 6;
773
- */
774
- externalId?: string;
775
-
776
- /**
777
- * @generated from field: scalekit.v1.users.CreateMembership membership = 7;
778
- */
779
- membership?: CreateMembership;
780
-
781
- /**
782
- * @generated from field: scalekit.v1.users.CreateUserProfile user_profile = 8;
783
- */
784
- userProfile?: CreateUserProfile;
785
-
786
- /**
787
- * @generated from field: map<string, string> metadata = 9;
788
- */
789
- metadata: { [key: string]: string };
790
- };
791
-
792
- /**
793
- * Describes the message scalekit.v1.users.CreateUser.
794
- * Use `create(CreateUserSchema)` to create a new message.
795
- */
796
- export const CreateUserSchema: GenMessage<CreateUser> = /*@__PURE__*/
797
- messageDesc(file_scalekit_v1_users_users, 26);
798
-
799
- /**
800
- * @generated from message scalekit.v1.users.CreateUserProfile
801
- */
802
- export type CreateUserProfile = Message<"scalekit.v1.users.CreateUserProfile"> & {
803
- /**
804
- * @generated from field: string given_name = 2;
805
- */
806
- givenName: string;
807
-
808
- /**
809
- * @generated from field: string family_name = 3;
810
- */
811
- familyName: string;
812
-
813
- /**
814
- * @generated from field: string name = 4;
815
- */
816
- name: string;
817
-
818
- /**
819
- * @generated from field: string locale = 5;
820
- */
821
- locale: string;
822
-
823
- /**
824
- * @generated from field: string phone_number = 7;
825
- */
826
- phoneNumber: string;
827
-
828
- /**
829
- * @generated from field: map<string, string> metadata = 8;
830
- */
831
- metadata: { [key: string]: string };
832
-
833
- /**
834
- * @generated from field: map<string, string> custom_attributes = 9;
835
- */
836
- customAttributes: { [key: string]: string };
837
-
838
- /**
839
- * @generated from field: string preferred_username = 10;
840
- */
841
- preferredUsername: string;
842
-
843
- /**
844
- * @generated from field: optional string picture = 11;
845
- */
846
- picture?: string;
847
-
848
- /**
849
- * @generated from field: optional string gender = 12;
850
- */
851
- gender?: string;
852
-
853
- /**
854
- * @generated from field: repeated string groups = 13;
855
- */
856
- groups: string[];
857
-
858
- /**
859
- * @generated from field: string first_name = 21 [deprecated = true];
860
- * @deprecated
861
- */
862
- firstName: string;
863
-
864
- /**
865
- * @generated from field: string last_name = 22 [deprecated = true];
866
- * @deprecated
867
- */
868
- lastName: string;
869
- };
870
-
871
- /**
872
- * Describes the message scalekit.v1.users.CreateUserProfile.
873
- * Use `create(CreateUserProfileSchema)` to create a new message.
874
- */
875
- export const CreateUserProfileSchema: GenMessage<CreateUserProfile> = /*@__PURE__*/
876
- messageDesc(file_scalekit_v1_users_users, 27);
877
-
878
- /**
879
- * @generated from message scalekit.v1.users.UpdateUserProfile
880
- */
881
- export type UpdateUserProfile = Message<"scalekit.v1.users.UpdateUserProfile"> & {
882
- /**
883
- * @generated from field: optional string given_name = 2;
884
- */
885
- givenName?: string;
886
-
887
- /**
888
- * @generated from field: optional string family_name = 3;
889
- */
890
- familyName?: string;
891
-
892
- /**
893
- * @generated from field: optional string name = 4;
894
- */
895
- name?: string;
896
-
897
- /**
898
- * @generated from field: optional string locale = 5;
899
- */
900
- locale?: string;
901
-
902
- /**
903
- * @generated from field: optional string phone_number = 7;
904
- */
905
- phoneNumber?: string;
906
-
907
- /**
908
- * @generated from field: map<string, string> metadata = 8;
909
- */
910
- metadata: { [key: string]: string };
911
-
912
- /**
913
- * @generated from field: map<string, string> custom_attributes = 9;
914
- */
915
- customAttributes: { [key: string]: string };
916
-
917
- /**
918
- * @generated from field: optional string first_name = 21 [deprecated = true];
919
- * @deprecated
920
- */
921
- firstName?: string;
922
-
923
- /**
924
- * @generated from field: optional string last_name = 22 [deprecated = true];
925
- * @deprecated
926
- */
927
- lastName?: string;
928
-
929
- /**
930
- * @generated from field: optional string preferred_username = 10;
931
- */
932
- preferredUsername?: string;
933
-
934
- /**
935
- * @generated from field: optional string picture = 11;
936
- */
937
- picture?: string;
938
-
939
- /**
940
- * @generated from field: optional string gender = 12;
941
- */
942
- gender?: string;
943
-
944
- /**
945
- * @generated from field: repeated string groups = 13;
946
- */
947
- groups: string[];
948
- };
949
-
950
- /**
951
- * Describes the message scalekit.v1.users.UpdateUserProfile.
952
- * Use `create(UpdateUserProfileSchema)` to create a new message.
953
- */
954
- export const UpdateUserProfileSchema: GenMessage<UpdateUserProfile> = /*@__PURE__*/
955
- messageDesc(file_scalekit_v1_users_users, 28);
956
-
957
- /**
958
- * @generated from message scalekit.v1.users.Invite
959
- */
960
- export type Invite = Message<"scalekit.v1.users.Invite"> & {
961
- /**
962
- * @generated from field: string organization_id = 1;
963
- */
964
- organizationId: string;
965
-
966
- /**
967
- * @generated from field: string user_id = 2;
968
- */
969
- userId: string;
970
-
971
- /**
972
- * @generated from field: optional string inviter_email = 3;
973
- */
974
- inviterEmail?: string;
975
-
976
- /**
977
- * @generated from field: string status = 4;
978
- */
979
- status: string;
980
-
981
- /**
982
- * @generated from field: google.protobuf.Timestamp created_at = 5;
983
- */
984
- createdAt?: Timestamp;
985
-
986
- /**
987
- * @generated from field: google.protobuf.Timestamp expires_at = 6;
988
- */
989
- expiresAt?: Timestamp;
990
-
991
- /**
992
- * @generated from field: google.protobuf.Timestamp resent_at = 7;
993
- */
994
- resentAt?: Timestamp;
995
-
996
- /**
997
- * @generated from field: int32 resent_count = 8;
998
- */
999
- resentCount: number;
1000
- };
1001
-
1002
- /**
1003
- * Describes the message scalekit.v1.users.Invite.
1004
- * Use `create(InviteSchema)` to create a new message.
1005
- */
1006
- export const InviteSchema: GenMessage<Invite> = /*@__PURE__*/
1007
- messageDesc(file_scalekit_v1_users_users, 29);
1008
-
1009
- /**
1010
- * @generated from message scalekit.v1.users.ResendInviteRequest
1011
- */
1012
- export type ResendInviteRequest = Message<"scalekit.v1.users.ResendInviteRequest"> & {
1013
- /**
1014
- * @generated from field: string organization_id = 1;
1015
- */
1016
- organizationId: string;
1017
-
1018
- /**
1019
- * @generated from field: string id = 2;
1020
- */
1021
- id: string;
1022
- };
1023
-
1024
- /**
1025
- * Describes the message scalekit.v1.users.ResendInviteRequest.
1026
- * Use `create(ResendInviteRequestSchema)` to create a new message.
1027
- */
1028
- export const ResendInviteRequestSchema: GenMessage<ResendInviteRequest> = /*@__PURE__*/
1029
- messageDesc(file_scalekit_v1_users_users, 30);
1030
-
1031
- /**
1032
- * @generated from message scalekit.v1.users.ResendInviteResponse
1033
- */
1034
- export type ResendInviteResponse = Message<"scalekit.v1.users.ResendInviteResponse"> & {
1035
- /**
1036
- * @generated from field: scalekit.v1.users.Invite invite = 1;
1037
- */
1038
- invite?: Invite;
1039
- };
1040
-
1041
- /**
1042
- * Describes the message scalekit.v1.users.ResendInviteResponse.
1043
- * Use `create(ResendInviteResponseSchema)` to create a new message.
1044
- */
1045
- export const ResendInviteResponseSchema: GenMessage<ResendInviteResponse> = /*@__PURE__*/
1046
- messageDesc(file_scalekit_v1_users_users, 31);
1047
-
1048
- /**
1049
- * @generated from message scalekit.v1.users.ListUserRolesRequest
1050
- */
1051
- export type ListUserRolesRequest = Message<"scalekit.v1.users.ListUserRolesRequest"> & {
1052
- /**
1053
- * @generated from field: string organization_id = 1;
1054
- */
1055
- organizationId: string;
1056
-
1057
- /**
1058
- * @generated from field: string user_id = 2;
1059
- */
1060
- userId: string;
1061
- };
1062
-
1063
- /**
1064
- * Describes the message scalekit.v1.users.ListUserRolesRequest.
1065
- * Use `create(ListUserRolesRequestSchema)` to create a new message.
1066
- */
1067
- export const ListUserRolesRequestSchema: GenMessage<ListUserRolesRequest> = /*@__PURE__*/
1068
- messageDesc(file_scalekit_v1_users_users, 32);
1069
-
1070
- /**
1071
- * @generated from message scalekit.v1.users.ListUserRolesResponse
1072
- */
1073
- export type ListUserRolesResponse = Message<"scalekit.v1.users.ListUserRolesResponse"> & {
1074
- /**
1075
- * @generated from field: repeated scalekit.v1.commons.Role roles = 1;
1076
- */
1077
- roles: Role[];
1078
- };
1079
-
1080
- /**
1081
- * Describes the message scalekit.v1.users.ListUserRolesResponse.
1082
- * Use `create(ListUserRolesResponseSchema)` to create a new message.
1083
- */
1084
- export const ListUserRolesResponseSchema: GenMessage<ListUserRolesResponse> = /*@__PURE__*/
1085
- messageDesc(file_scalekit_v1_users_users, 33);
1086
-
1087
- /**
1088
- * @generated from message scalekit.v1.users.AssignUserRolesRequest
1089
- */
1090
- export type AssignUserRolesRequest = Message<"scalekit.v1.users.AssignUserRolesRequest"> & {
1091
- /**
1092
- * @generated from field: string organization_id = 1;
1093
- */
1094
- organizationId: string;
1095
-
1096
- /**
1097
- * @generated from field: string user_id = 2;
1098
- */
1099
- userId: string;
1100
-
1101
- /**
1102
- * @generated from field: repeated scalekit.v1.users.AssignRoleRequest roles = 3;
1103
- */
1104
- roles: AssignRoleRequest[];
1105
- };
1106
-
1107
- /**
1108
- * Describes the message scalekit.v1.users.AssignUserRolesRequest.
1109
- * Use `create(AssignUserRolesRequestSchema)` to create a new message.
1110
- */
1111
- export const AssignUserRolesRequestSchema: GenMessage<AssignUserRolesRequest> = /*@__PURE__*/
1112
- messageDesc(file_scalekit_v1_users_users, 34);
1113
-
1114
- /**
1115
- * @generated from message scalekit.v1.users.AssignRoleRequest
1116
- */
1117
- export type AssignRoleRequest = Message<"scalekit.v1.users.AssignRoleRequest"> & {
1118
- /**
1119
- * @generated from field: string id = 1 [deprecated = true];
1120
- * @deprecated
1121
- */
1122
- id: string;
1123
-
1124
- /**
1125
- * @generated from field: string role_name = 2;
1126
- */
1127
- roleName: string;
1128
- };
1129
-
1130
- /**
1131
- * Describes the message scalekit.v1.users.AssignRoleRequest.
1132
- * Use `create(AssignRoleRequestSchema)` to create a new message.
1133
- */
1134
- export const AssignRoleRequestSchema: GenMessage<AssignRoleRequest> = /*@__PURE__*/
1135
- messageDesc(file_scalekit_v1_users_users, 35);
1136
-
1137
- /**
1138
- * @generated from message scalekit.v1.users.AssignUserRolesResponse
1139
- */
1140
- export type AssignUserRolesResponse = Message<"scalekit.v1.users.AssignUserRolesResponse"> & {
1141
- /**
1142
- * @generated from field: repeated scalekit.v1.commons.Role roles = 1;
1143
- */
1144
- roles: Role[];
1145
- };
1146
-
1147
- /**
1148
- * Describes the message scalekit.v1.users.AssignUserRolesResponse.
1149
- * Use `create(AssignUserRolesResponseSchema)` to create a new message.
1150
- */
1151
- export const AssignUserRolesResponseSchema: GenMessage<AssignUserRolesResponse> = /*@__PURE__*/
1152
- messageDesc(file_scalekit_v1_users_users, 36);
1153
-
1154
- /**
1155
- * @generated from message scalekit.v1.users.RemoveUserRoleRequest
1156
- */
1157
- export type RemoveUserRoleRequest = Message<"scalekit.v1.users.RemoveUserRoleRequest"> & {
1158
- /**
1159
- * @generated from field: string organization_id = 1;
1160
- */
1161
- organizationId: string;
1162
-
1163
- /**
1164
- * @generated from field: string user_id = 2;
1165
- */
1166
- userId: string;
1167
-
1168
- /**
1169
- * @generated from field: string role_name = 3;
1170
- */
1171
- roleName: string;
1172
- };
1173
-
1174
- /**
1175
- * Describes the message scalekit.v1.users.RemoveUserRoleRequest.
1176
- * Use `create(RemoveUserRoleRequestSchema)` to create a new message.
1177
- */
1178
- export const RemoveUserRoleRequestSchema: GenMessage<RemoveUserRoleRequest> = /*@__PURE__*/
1179
- messageDesc(file_scalekit_v1_users_users, 37);
1180
-
1181
- /**
1182
- * @generated from message scalekit.v1.users.ListUserPermissionsRequest
1183
- */
1184
- export type ListUserPermissionsRequest = Message<"scalekit.v1.users.ListUserPermissionsRequest"> & {
1185
- /**
1186
- * @generated from field: string organization_id = 1;
1187
- */
1188
- organizationId: string;
1189
-
1190
- /**
1191
- * @generated from field: string user_id = 2;
1192
- */
1193
- userId: string;
1194
- };
1195
-
1196
- /**
1197
- * Describes the message scalekit.v1.users.ListUserPermissionsRequest.
1198
- * Use `create(ListUserPermissionsRequestSchema)` to create a new message.
1199
- */
1200
- export const ListUserPermissionsRequestSchema: GenMessage<ListUserPermissionsRequest> = /*@__PURE__*/
1201
- messageDesc(file_scalekit_v1_users_users, 38);
1202
-
1203
- /**
1204
- * @generated from message scalekit.v1.users.Permission
1205
- */
1206
- export type Permission = Message<"scalekit.v1.users.Permission"> & {
1207
- /**
1208
- * @generated from field: string id = 1;
1209
- */
1210
- id: string;
1211
-
1212
- /**
1213
- * @generated from field: string name = 2;
1214
- */
1215
- name: string;
1216
-
1217
- /**
1218
- * @generated from field: string description = 3;
1219
- */
1220
- description: string;
1221
-
1222
- /**
1223
- * @generated from field: repeated string tags = 4;
1224
- */
1225
- tags: string[];
1226
- };
1227
-
1228
- /**
1229
- * Describes the message scalekit.v1.users.Permission.
1230
- * Use `create(PermissionSchema)` to create a new message.
1231
- */
1232
- export const PermissionSchema: GenMessage<Permission> = /*@__PURE__*/
1233
- messageDesc(file_scalekit_v1_users_users, 39);
1234
-
1235
- /**
1236
- * @generated from message scalekit.v1.users.ListUserPermissionsResponse
1237
- */
1238
- export type ListUserPermissionsResponse = Message<"scalekit.v1.users.ListUserPermissionsResponse"> & {
1239
- /**
1240
- * @generated from field: repeated scalekit.v1.users.Permission permissions = 1;
1241
- */
1242
- permissions: Permission[];
1243
- };
1244
-
1245
- /**
1246
- * Describes the message scalekit.v1.users.ListUserPermissionsResponse.
1247
- * Use `create(ListUserPermissionsResponseSchema)` to create a new message.
1248
- */
1249
- export const ListUserPermissionsResponseSchema: GenMessage<ListUserPermissionsResponse> = /*@__PURE__*/
1250
- messageDesc(file_scalekit_v1_users_users, 40);
1251
-
1252
- /**
1253
- * @generated from service scalekit.v1.users.UserService
1254
- */
1255
- export const UserService: GenService<{
1256
- /**
1257
- * Users
1258
- *
1259
- * @generated from rpc scalekit.v1.users.UserService.GetUser
1260
- */
1261
- getUser: {
1262
- methodKind: "unary";
1263
- input: typeof GetUserRequestSchema;
1264
- output: typeof GetUserResponseSchema;
1265
- },
1266
- /**
1267
- * @generated from rpc scalekit.v1.users.UserService.GetCurrentUser
1268
- */
1269
- getCurrentUser: {
1270
- methodKind: "unary";
1271
- input: typeof GetCurrentUserRequestSchema;
1272
- output: typeof GetCurrentUserResponseSchema;
1273
- },
1274
- /**
1275
- * @generated from rpc scalekit.v1.users.UserService.ListUsers
1276
- */
1277
- listUsers: {
1278
- methodKind: "unary";
1279
- input: typeof ListUsersRequestSchema;
1280
- output: typeof ListUsersResponseSchema;
1281
- },
1282
- /**
1283
- * @generated from rpc scalekit.v1.users.UserService.SearchUsers
1284
- */
1285
- searchUsers: {
1286
- methodKind: "unary";
1287
- input: typeof SearchUsersRequestSchema;
1288
- output: typeof SearchUsersResponseSchema;
1289
- },
1290
- /**
1291
- * @generated from rpc scalekit.v1.users.UserService.SearchOrganizationUsers
1292
- */
1293
- searchOrganizationUsers: {
1294
- methodKind: "unary";
1295
- input: typeof SearchOrganizationUsersRequestSchema;
1296
- output: typeof SearchOrganizationUsersResponseSchema;
1297
- },
1298
- /**
1299
- * @generated from rpc scalekit.v1.users.UserService.UpdateUser
1300
- */
1301
- updateUser: {
1302
- methodKind: "unary";
1303
- input: typeof UpdateUserRequestSchema;
1304
- output: typeof UpdateUserResponseSchema;
1305
- },
1306
- /**
1307
- * @generated from rpc scalekit.v1.users.UserService.DeleteUser
1308
- */
1309
- deleteUser: {
1310
- methodKind: "unary";
1311
- input: typeof DeleteUserRequestSchema;
1312
- output: typeof EmptySchema;
1313
- },
1314
- /**
1315
- * Memberships
1316
- *
1317
- * @generated from rpc scalekit.v1.users.UserService.CreateMembership
1318
- */
1319
- createMembership: {
1320
- methodKind: "unary";
1321
- input: typeof CreateMembershipRequestSchema;
1322
- output: typeof CreateMembershipResponseSchema;
1323
- },
1324
- /**
1325
- * TODO Check cascade behaviour currently its ignored
1326
- *
1327
- * @generated from rpc scalekit.v1.users.UserService.DeleteMembership
1328
- */
1329
- deleteMembership: {
1330
- methodKind: "unary";
1331
- input: typeof DeleteMembershipRequestSchema;
1332
- output: typeof EmptySchema;
1333
- },
1334
- /**
1335
- * @generated from rpc scalekit.v1.users.UserService.UpdateMembership
1336
- */
1337
- updateMembership: {
1338
- methodKind: "unary";
1339
- input: typeof UpdateMembershipRequestSchema;
1340
- output: typeof UpdateMembershipResponseSchema;
1341
- },
1342
- /**
1343
- * @generated from rpc scalekit.v1.users.UserService.CreateUserAndMembership
1344
- */
1345
- createUserAndMembership: {
1346
- methodKind: "unary";
1347
- input: typeof CreateUserAndMembershipRequestSchema;
1348
- output: typeof CreateUserAndMembershipResponseSchema;
1349
- },
1350
- /**
1351
- * only memberships of the organization
1352
- *
1353
- * @generated from rpc scalekit.v1.users.UserService.ListOrganizationUsers
1354
- */
1355
- listOrganizationUsers: {
1356
- methodKind: "unary";
1357
- input: typeof ListOrganizationUsersRequestSchema;
1358
- output: typeof ListOrganizationUsersResponseSchema;
1359
- },
1360
- /**
1361
- * @generated from rpc scalekit.v1.users.UserService.ResendInvite
1362
- */
1363
- resendInvite: {
1364
- methodKind: "unary";
1365
- input: typeof ResendInviteRequestSchema;
1366
- output: typeof ResendInviteResponseSchema;
1367
- },
1368
- /**
1369
- * User Role Management
1370
- *
1371
- * @generated from rpc scalekit.v1.users.UserService.ListUserRoles
1372
- */
1373
- listUserRoles: {
1374
- methodKind: "unary";
1375
- input: typeof ListUserRolesRequestSchema;
1376
- output: typeof ListUserRolesResponseSchema;
1377
- },
1378
- /**
1379
- * @generated from rpc scalekit.v1.users.UserService.AssignUserRoles
1380
- */
1381
- assignUserRoles: {
1382
- methodKind: "unary";
1383
- input: typeof AssignUserRolesRequestSchema;
1384
- output: typeof AssignUserRolesResponseSchema;
1385
- },
1386
- /**
1387
- * @generated from rpc scalekit.v1.users.UserService.RemoveUserRole
1388
- */
1389
- removeUserRole: {
1390
- methodKind: "unary";
1391
- input: typeof RemoveUserRoleRequestSchema;
1392
- output: typeof EmptySchema;
1393
- },
1394
- /**
1395
- * @generated from rpc scalekit.v1.users.UserService.ListUserPermissions
1396
- */
1397
- listUserPermissions: {
1398
- methodKind: "unary";
1399
- input: typeof ListUserPermissionsRequestSchema;
1400
- output: typeof ListUserPermissionsResponseSchema;
1401
- },
1402
- }> = /*@__PURE__*/
1403
- serviceDesc(file_scalekit_v1_users_users, 0);
1404
-