*: rename RPCs and structs related to revoking

This commit renames RPCs and structs related to revoking.
1. UserRevoke -> UserRevokeRole
2. RoleRevoke -> RoleRevokePermission
This commit is contained in:
Hitoshi Mitake 2016-06-05 16:57:23 +09:00
parent 60fc1e4d4e
commit 94f22e8a07
12 changed files with 406 additions and 399 deletions

View File

@ -78,8 +78,8 @@ type AuthStore interface {
// UserGet gets the detailed information of a user // UserGet gets the detailed information of a user
UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error)
// UserRevoke revokes a role of a user // UserRevokeRole revokes a role of a user
UserRevoke(r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) UserRevokeRole(r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error)
// RoleAdd adds a new role // RoleAdd adds a new role
RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error)
@ -90,8 +90,8 @@ type AuthStore interface {
// RoleGet gets the detailed information of a role // RoleGet gets the detailed information of a role
RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error)
// RoleRevoke gets the detailed information of a role // RoleRevokePermission gets the detailed information of a role
RoleRevoke(r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error)
// RoleDelete gets the detailed information of a role // RoleDelete gets the detailed information of a role
RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error)
@ -335,7 +335,7 @@ func (as *authStore) UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse,
return &resp, nil return &resp, nil
} }
func (as *authStore) UserRevoke(r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) { func (as *authStore) UserRevokeRole(r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) {
tx := as.be.BatchTx() tx := as.be.BatchTx()
tx.Lock() tx.Lock()
defer tx.Unlock() defer tx.Unlock()
@ -376,7 +376,7 @@ func (as *authStore) UserRevoke(r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevoke
tx.UnsafePut(authUsersBucketName, updatedUser.Name, marshaledUser) tx.UnsafePut(authUsersBucketName, updatedUser.Name, marshaledUser)
plog.Noticef("revoked role %s from user %s", r.Role, r.Name) plog.Noticef("revoked role %s from user %s", r.Role, r.Name)
return &pb.AuthUserRevokeResponse{}, nil return &pb.AuthUserRevokeRoleResponse{}, nil
} }
func (as *authStore) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) { func (as *authStore) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) {
@ -403,7 +403,7 @@ func (as *authStore) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse,
return &resp, nil return &resp, nil
} }
func (as *authStore) RoleRevoke(r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) { func (as *authStore) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) {
tx := as.be.BatchTx() tx := as.be.BatchTx()
tx.Lock() tx.Lock()
defer tx.Unlock() defer tx.Unlock()
@ -443,7 +443,7 @@ func (as *authStore) RoleRevoke(r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevoke
tx.UnsafePut(authRolesBucketName, updatedRole.Name, marshaledRole) tx.UnsafePut(authRolesBucketName, updatedRole.Name, marshaledRole)
plog.Noticef("revoked key %s from role %s", r.Key, r.Role) plog.Noticef("revoked key %s from role %s", r.Key, r.Role)
return &pb.AuthRoleRevokeResponse{}, nil return &pb.AuthRoleRevokePermissionResponse{}, nil
} }
func (as *authStore) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) { func (as *authStore) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) {

View File

@ -34,11 +34,11 @@ type (
AuthUserChangePasswordResponse pb.AuthUserChangePasswordResponse AuthUserChangePasswordResponse pb.AuthUserChangePasswordResponse
AuthUserGrantResponse pb.AuthUserGrantResponse AuthUserGrantResponse pb.AuthUserGrantResponse
AuthUserGetResponse pb.AuthUserGetResponse AuthUserGetResponse pb.AuthUserGetResponse
AuthUserRevokeResponse pb.AuthUserRevokeResponse AuthUserRevokeRoleResponse pb.AuthUserRevokeRoleResponse
AuthRoleAddResponse pb.AuthRoleAddResponse AuthRoleAddResponse pb.AuthRoleAddResponse
AuthRoleGrantResponse pb.AuthRoleGrantResponse AuthRoleGrantResponse pb.AuthRoleGrantResponse
AuthRoleGetResponse pb.AuthRoleGetResponse AuthRoleGetResponse pb.AuthRoleGetResponse
AuthRoleRevokeResponse pb.AuthRoleRevokeResponse AuthRoleRevokePermissionResponse pb.AuthRoleRevokePermissionResponse
AuthRoleDeleteResponse pb.AuthRoleDeleteResponse AuthRoleDeleteResponse pb.AuthRoleDeleteResponse
PermissionType authpb.Permission_Type PermissionType authpb.Permission_Type
@ -72,8 +72,8 @@ type Auth interface {
// UserGet gets a detailed information of a user. // UserGet gets a detailed information of a user.
UserGet(ctx context.Context, name string) (*AuthUserGetResponse, error) UserGet(ctx context.Context, name string) (*AuthUserGetResponse, error)
// UserRevoke revokes a role of a user. // UserRevokeRole revokes a role of a user.
UserRevoke(ctx context.Context, name string, role string) (*AuthUserRevokeResponse, error) UserRevokeRole(ctx context.Context, name string, role string) (*AuthUserRevokeRoleResponse, error)
// RoleAdd adds a new role to an etcd cluster. // RoleAdd adds a new role to an etcd cluster.
RoleAdd(ctx context.Context, name string) (*AuthRoleAddResponse, error) RoleAdd(ctx context.Context, name string) (*AuthRoleAddResponse, error)
@ -84,8 +84,8 @@ type Auth interface {
// RoleGet gets a detailed information of a role. // RoleGet gets a detailed information of a role.
RoleGet(ctx context.Context, role string) (*AuthRoleGetResponse, error) RoleGet(ctx context.Context, role string) (*AuthRoleGetResponse, error)
// RoleRevoke revokes a key from a user. // RoleRevokePermission revokes a key from a user.
RoleRevoke(ctx context.Context, role string, key string) (*AuthRoleRevokeResponse, error) RoleRevokePermission(ctx context.Context, role string, key string) (*AuthRoleRevokePermissionResponse, error)
// RoleDelete deletes a role. // RoleDelete deletes a role.
RoleDelete(ctx context.Context, role string) (*AuthRoleDeleteResponse, error) RoleDelete(ctx context.Context, role string) (*AuthRoleDeleteResponse, error)
@ -142,9 +142,9 @@ func (auth *auth) UserGet(ctx context.Context, name string) (*AuthUserGetRespons
return (*AuthUserGetResponse)(resp), rpctypes.Error(err) return (*AuthUserGetResponse)(resp), rpctypes.Error(err)
} }
func (auth *auth) UserRevoke(ctx context.Context, name string, role string) (*AuthUserRevokeResponse, error) { func (auth *auth) UserRevokeRole(ctx context.Context, name string, role string) (*AuthUserRevokeRoleResponse, error) {
resp, err := auth.remote.UserRevoke(ctx, &pb.AuthUserRevokeRequest{Name: name, Role: role}) resp, err := auth.remote.UserRevokeRole(ctx, &pb.AuthUserRevokeRoleRequest{Name: name, Role: role})
return (*AuthUserRevokeResponse)(resp), rpctypes.Error(err) return (*AuthUserRevokeRoleResponse)(resp), rpctypes.Error(err)
} }
func (auth *auth) RoleAdd(ctx context.Context, name string) (*AuthRoleAddResponse, error) { func (auth *auth) RoleAdd(ctx context.Context, name string) (*AuthRoleAddResponse, error) {
@ -166,9 +166,9 @@ func (auth *auth) RoleGet(ctx context.Context, role string) (*AuthRoleGetRespons
return (*AuthRoleGetResponse)(resp), rpctypes.Error(err) return (*AuthRoleGetResponse)(resp), rpctypes.Error(err)
} }
func (auth *auth) RoleRevoke(ctx context.Context, role string, key string) (*AuthRoleRevokeResponse, error) { func (auth *auth) RoleRevokePermission(ctx context.Context, role string, key string) (*AuthRoleRevokePermissionResponse, error) {
resp, err := auth.remote.RoleRevoke(ctx, &pb.AuthRoleRevokeRequest{Role: role, Key: key}) resp, err := auth.remote.RoleRevokePermission(ctx, &pb.AuthRoleRevokePermissionRequest{Role: role, Key: key})
return (*AuthRoleRevokeResponse)(resp), rpctypes.Error(err) return (*AuthRoleRevokePermissionResponse)(resp), rpctypes.Error(err)
} }
func (auth *auth) RoleDelete(ctx context.Context, role string) (*AuthRoleDeleteResponse, error) { func (auth *auth) RoleDelete(ctx context.Context, role string) (*AuthRoleDeleteResponse, error) {

View File

@ -143,7 +143,7 @@ func roleRevokePermissionCommandFunc(cmd *cobra.Command, args []string) {
ExitWithError(ExitBadArgs, fmt.Errorf("role revoke-permission command requires role name and key as its argument.")) ExitWithError(ExitBadArgs, fmt.Errorf("role revoke-permission command requires role name and key as its argument."))
} }
_, err := mustClientFromCmd(cmd).Auth.RoleRevoke(context.TODO(), args[0], args[1]) _, err := mustClientFromCmd(cmd).Auth.RoleRevokePermission(context.TODO(), args[0], args[1])
if err != nil { if err != nil {
ExitWithError(ExitError, err) ExitWithError(ExitError, err)
} }

View File

@ -198,7 +198,7 @@ func userRevokeRoleCommandFunc(cmd *cobra.Command, args []string) {
ExitWithError(ExitBadArgs, fmt.Errorf("user revoke-role requires user name and role name as its argument.")) ExitWithError(ExitBadArgs, fmt.Errorf("user revoke-role requires user name and role name as its argument."))
} }
_, err := mustClientFromCmd(cmd).Auth.UserRevoke(context.TODO(), args[0], args[1]) _, err := mustClientFromCmd(cmd).Auth.UserRevokeRole(context.TODO(), args[0], args[1])
if err != nil { if err != nil {
ExitWithError(ExitError, err) ExitWithError(ExitError, err)
} }

View File

@ -76,8 +76,8 @@ func (as *AuthServer) RoleGet(ctx context.Context, r *pb.AuthRoleGetRequest) (*p
return resp, nil return resp, nil
} }
func (as *AuthServer) RoleRevoke(ctx context.Context, r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) { func (as *AuthServer) RoleRevokePermission(ctx context.Context, r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) {
resp, err := as.authenticator.RoleRevoke(ctx, r) resp, err := as.authenticator.RoleRevokePermission(ctx, r)
if err != nil { if err != nil {
return nil, togRPCError(err) return nil, togRPCError(err)
} }
@ -124,8 +124,8 @@ func (as *AuthServer) UserGrant(ctx context.Context, r *pb.AuthUserGrantRequest)
return resp, nil return resp, nil
} }
func (as *AuthServer) UserRevoke(ctx context.Context, r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) { func (as *AuthServer) UserRevokeRole(ctx context.Context, r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) {
resp, err := as.authenticator.UserRevoke(ctx, r) resp, err := as.authenticator.UserRevokeRole(ctx, r)
if err != nil { if err != nil {
return nil, togRPCError(err) return nil, togRPCError(err)
} }

View File

@ -62,11 +62,11 @@ type applierV3 interface {
UserChangePassword(ua *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error) UserChangePassword(ua *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error)
UserGrant(ua *pb.AuthUserGrantRequest) (*pb.AuthUserGrantResponse, error) UserGrant(ua *pb.AuthUserGrantRequest) (*pb.AuthUserGrantResponse, error)
UserGet(ua *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) UserGet(ua *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error)
UserRevoke(ua *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) UserRevokeRole(ua *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error)
RoleAdd(ua *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) RoleAdd(ua *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error)
RoleGrant(ua *pb.AuthRoleGrantRequest) (*pb.AuthRoleGrantResponse, error) RoleGrant(ua *pb.AuthRoleGrantRequest) (*pb.AuthRoleGrantResponse, error)
RoleGet(ua *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) RoleGet(ua *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error)
RoleRevoke(ua *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) RoleRevokePermission(ua *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error)
RoleDelete(ua *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) RoleDelete(ua *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error)
} }
@ -117,16 +117,16 @@ func (s *EtcdServer) applyV3Request(r *pb.InternalRaftRequest) *applyResult {
ar.resp, ar.err = s.applyV3.UserGrant(r.AuthUserGrant) ar.resp, ar.err = s.applyV3.UserGrant(r.AuthUserGrant)
case r.AuthUserGet != nil: case r.AuthUserGet != nil:
ar.resp, ar.err = s.applyV3.UserGet(r.AuthUserGet) ar.resp, ar.err = s.applyV3.UserGet(r.AuthUserGet)
case r.AuthUserRevoke != nil: case r.AuthUserRevokeRole != nil:
ar.resp, ar.err = s.applyV3.UserRevoke(r.AuthUserRevoke) ar.resp, ar.err = s.applyV3.UserRevokeRole(r.AuthUserRevokeRole)
case r.AuthRoleAdd != nil: case r.AuthRoleAdd != nil:
ar.resp, ar.err = s.applyV3.RoleAdd(r.AuthRoleAdd) ar.resp, ar.err = s.applyV3.RoleAdd(r.AuthRoleAdd)
case r.AuthRoleGrant != nil: case r.AuthRoleGrant != nil:
ar.resp, ar.err = s.applyV3.RoleGrant(r.AuthRoleGrant) ar.resp, ar.err = s.applyV3.RoleGrant(r.AuthRoleGrant)
case r.AuthRoleGet != nil: case r.AuthRoleGet != nil:
ar.resp, ar.err = s.applyV3.RoleGet(r.AuthRoleGet) ar.resp, ar.err = s.applyV3.RoleGet(r.AuthRoleGet)
case r.AuthRoleRevoke != nil: case r.AuthRoleRevokePermission != nil:
ar.resp, ar.err = s.applyV3.RoleRevoke(r.AuthRoleRevoke) ar.resp, ar.err = s.applyV3.RoleRevokePermission(r.AuthRoleRevokePermission)
case r.AuthRoleDelete != nil: case r.AuthRoleDelete != nil:
ar.resp, ar.err = s.applyV3.RoleDelete(r.AuthRoleDelete) ar.resp, ar.err = s.applyV3.RoleDelete(r.AuthRoleDelete)
default: default:
@ -551,8 +551,8 @@ func (a *applierV3backend) UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetRes
return a.s.AuthStore().UserGet(r) return a.s.AuthStore().UserGet(r)
} }
func (a *applierV3backend) UserRevoke(r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) { func (a *applierV3backend) UserRevokeRole(r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) {
return a.s.AuthStore().UserRevoke(r) return a.s.AuthStore().UserRevokeRole(r)
} }
func (a *applierV3backend) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) { func (a *applierV3backend) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) {
@ -567,8 +567,8 @@ func (a *applierV3backend) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetRes
return a.s.AuthStore().RoleGet(r) return a.s.AuthStore().RoleGet(r)
} }
func (a *applierV3backend) RoleRevoke(r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) { func (a *applierV3backend) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) {
return a.s.AuthStore().RoleRevoke(r) return a.s.AuthStore().RoleRevokePermission(r)
} }
func (a *applierV3backend) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) { func (a *applierV3backend) RoleDelete(r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) {

View File

@ -68,12 +68,12 @@
AuthUserDeleteRequest AuthUserDeleteRequest
AuthUserChangePasswordRequest AuthUserChangePasswordRequest
AuthUserGrantRequest AuthUserGrantRequest
AuthUserRevokeRequest AuthUserRevokeRoleRequest
AuthRoleAddRequest AuthRoleAddRequest
AuthRoleGetRequest AuthRoleGetRequest
AuthRoleDeleteRequest AuthRoleDeleteRequest
AuthRoleGrantRequest AuthRoleGrantRequest
AuthRoleRevokeRequest AuthRoleRevokePermissionRequest
AuthEnableResponse AuthEnableResponse
AuthDisableResponse AuthDisableResponse
AuthenticateResponse AuthenticateResponse
@ -82,12 +82,12 @@
AuthUserDeleteResponse AuthUserDeleteResponse
AuthUserChangePasswordResponse AuthUserChangePasswordResponse
AuthUserGrantResponse AuthUserGrantResponse
AuthUserRevokeResponse AuthUserRevokeRoleResponse
AuthRoleAddResponse AuthRoleAddResponse
AuthRoleGetResponse AuthRoleGetResponse
AuthRoleDeleteResponse AuthRoleDeleteResponse
AuthRoleGrantResponse AuthRoleGrantResponse
AuthRoleRevokeResponse AuthRoleRevokePermissionResponse
*/ */
package etcdserverpb package etcdserverpb

View File

@ -55,8 +55,8 @@ type InternalRaftRequest struct {
Authenticate *AuthenticateRequest `protobuf:"bytes,1018,opt,name=authenticate" json:"authenticate,omitempty"` Authenticate *AuthenticateRequest `protobuf:"bytes,1018,opt,name=authenticate" json:"authenticate,omitempty"`
AuthUserGet *AuthUserGetRequest `protobuf:"bytes,1019,opt,name=auth_user_get,json=authUserGet" json:"auth_user_get,omitempty"` AuthUserGet *AuthUserGetRequest `protobuf:"bytes,1019,opt,name=auth_user_get,json=authUserGet" json:"auth_user_get,omitempty"`
AuthRoleGet *AuthRoleGetRequest `protobuf:"bytes,1020,opt,name=auth_role_get,json=authRoleGet" json:"auth_role_get,omitempty"` AuthRoleGet *AuthRoleGetRequest `protobuf:"bytes,1020,opt,name=auth_role_get,json=authRoleGet" json:"auth_role_get,omitempty"`
AuthUserRevoke *AuthUserRevokeRequest `protobuf:"bytes,1021,opt,name=auth_user_revoke,json=authUserRevoke" json:"auth_user_revoke,omitempty"` AuthUserRevokeRole *AuthUserRevokeRoleRequest `protobuf:"bytes,1021,opt,name=auth_user_revoke_role,json=authUserRevokeRole" json:"auth_user_revoke_role,omitempty"`
AuthRoleRevoke *AuthRoleRevokeRequest `protobuf:"bytes,1022,opt,name=auth_role_revoke,json=authRoleRevoke" json:"auth_role_revoke,omitempty"` AuthRoleRevokePermission *AuthRoleRevokePermissionRequest `protobuf:"bytes,1022,opt,name=auth_role_revoke_permission,json=authRoleRevokePermission" json:"auth_role_revoke_permission,omitempty"`
AuthRoleDelete *AuthRoleDeleteRequest `protobuf:"bytes,1023,opt,name=auth_role_delete,json=authRoleDelete" json:"auth_role_delete,omitempty"` AuthRoleDelete *AuthRoleDeleteRequest `protobuf:"bytes,1023,opt,name=auth_role_delete,json=authRoleDelete" json:"auth_role_delete,omitempty"`
} }
@ -361,25 +361,25 @@ func (m *InternalRaftRequest) MarshalTo(data []byte) (int, error) {
} }
i += n21 i += n21
} }
if m.AuthUserRevoke != nil { if m.AuthUserRevokeRole != nil {
data[i] = 0xea data[i] = 0xea
i++ i++
data[i] = 0x3f data[i] = 0x3f
i++ i++
i = encodeVarintRaftInternal(data, i, uint64(m.AuthUserRevoke.Size())) i = encodeVarintRaftInternal(data, i, uint64(m.AuthUserRevokeRole.Size()))
n22, err := m.AuthUserRevoke.MarshalTo(data[i:]) n22, err := m.AuthUserRevokeRole.MarshalTo(data[i:])
if err != nil { if err != nil {
return 0, err return 0, err
} }
i += n22 i += n22
} }
if m.AuthRoleRevoke != nil { if m.AuthRoleRevokePermission != nil {
data[i] = 0xf2 data[i] = 0xf2
i++ i++
data[i] = 0x3f data[i] = 0x3f
i++ i++
i = encodeVarintRaftInternal(data, i, uint64(m.AuthRoleRevoke.Size())) i = encodeVarintRaftInternal(data, i, uint64(m.AuthRoleRevokePermission.Size()))
n23, err := m.AuthRoleRevoke.MarshalTo(data[i:]) n23, err := m.AuthRoleRevokePermission.MarshalTo(data[i:])
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -548,12 +548,12 @@ func (m *InternalRaftRequest) Size() (n int) {
l = m.AuthRoleGet.Size() l = m.AuthRoleGet.Size()
n += 2 + l + sovRaftInternal(uint64(l)) n += 2 + l + sovRaftInternal(uint64(l))
} }
if m.AuthUserRevoke != nil { if m.AuthUserRevokeRole != nil {
l = m.AuthUserRevoke.Size() l = m.AuthUserRevokeRole.Size()
n += 2 + l + sovRaftInternal(uint64(l)) n += 2 + l + sovRaftInternal(uint64(l))
} }
if m.AuthRoleRevoke != nil { if m.AuthRoleRevokePermission != nil {
l = m.AuthRoleRevoke.Size() l = m.AuthRoleRevokePermission.Size()
n += 2 + l + sovRaftInternal(uint64(l)) n += 2 + l + sovRaftInternal(uint64(l))
} }
if m.AuthRoleDelete != nil { if m.AuthRoleDelete != nil {
@ -1423,7 +1423,7 @@ func (m *InternalRaftRequest) Unmarshal(data []byte) error {
iNdEx = postIndex iNdEx = postIndex
case 1021: case 1021:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AuthUserRevoke", wireType) return fmt.Errorf("proto: wrong wireType = %d for field AuthUserRevokeRole", wireType)
} }
var msglen int var msglen int
for shift := uint(0); ; shift += 7 { for shift := uint(0); ; shift += 7 {
@ -1447,16 +1447,16 @@ func (m *InternalRaftRequest) Unmarshal(data []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
if m.AuthUserRevoke == nil { if m.AuthUserRevokeRole == nil {
m.AuthUserRevoke = &AuthUserRevokeRequest{} m.AuthUserRevokeRole = &AuthUserRevokeRoleRequest{}
} }
if err := m.AuthUserRevoke.Unmarshal(data[iNdEx:postIndex]); err != nil { if err := m.AuthUserRevokeRole.Unmarshal(data[iNdEx:postIndex]); err != nil {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 1022: case 1022:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AuthRoleRevoke", wireType) return fmt.Errorf("proto: wrong wireType = %d for field AuthRoleRevokePermission", wireType)
} }
var msglen int var msglen int
for shift := uint(0); ; shift += 7 { for shift := uint(0); ; shift += 7 {
@ -1480,10 +1480,10 @@ func (m *InternalRaftRequest) Unmarshal(data []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
if m.AuthRoleRevoke == nil { if m.AuthRoleRevokePermission == nil {
m.AuthRoleRevoke = &AuthRoleRevokeRequest{} m.AuthRoleRevokePermission = &AuthRoleRevokePermissionRequest{}
} }
if err := m.AuthRoleRevoke.Unmarshal(data[iNdEx:postIndex]); err != nil { if err := m.AuthRoleRevokePermission.Unmarshal(data[iNdEx:postIndex]); err != nil {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
@ -1697,47 +1697,49 @@ var (
) )
var fileDescriptorRaftInternal = []byte{ var fileDescriptorRaftInternal = []byte{
// 669 bytes of a gzipped FileDescriptorProto // 701 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x95, 0x4b, 0x6f, 0x13, 0x3f, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x95, 0x4b, 0x6f, 0x13, 0x31,
0x14, 0xc5, 0xff, 0x4d, 0xdf, 0x4e, 0xd2, 0x56, 0xee, 0x1f, 0x64, 0x82, 0x54, 0x4a, 0x10, 0x12, 0x10, 0xc7, 0x69, 0xfa, 0x76, 0x9a, 0xb6, 0x72, 0x29, 0x32, 0xa9, 0x54, 0x4a, 0x10, 0x02, 0x81,
0x02, 0xa9, 0xa0, 0x76, 0xc9, 0x02, 0x42, 0x53, 0x4a, 0x05, 0x42, 0xd5, 0x08, 0xd6, 0x91, 0x3b, 0x28, 0xa8, 0x3d, 0x72, 0x80, 0xd0, 0x94, 0x52, 0x81, 0x50, 0xb5, 0x82, 0x13, 0x87, 0xc8, 0xcd,
0x73, 0x99, 0x46, 0x4c, 0x66, 0x06, 0x8f, 0x53, 0xca, 0x37, 0xec, 0x92, 0x8f, 0x00, 0xac, 0xd8, 0x0e, 0xdb, 0x15, 0xfb, 0xc2, 0xeb, 0x94, 0xf2, 0x85, 0xf8, 0x2c, 0x3d, 0xf2, 0x11, 0x80, 0x13,
0xf3, 0x2e, 0x4f, 0xbf, 0xc6, 0x53, 0x37, 0x4e, 0x16, 0x91, 0x92, 0xe3, 0x73, 0x7f, 0xf7, 0xda, 0x77, 0xde, 0x6f, 0xfc, 0x5a, 0x6f, 0x37, 0x71, 0x7a, 0x58, 0x69, 0xf7, 0xef, 0xff, 0xfc, 0x66,
0x3e, 0x56, 0xd0, 0x2a, 0xa3, 0x2f, 0x78, 0xaf, 0x9f, 0x72, 0x60, 0x29, 0x4d, 0x36, 0x72, 0x96, 0x6c, 0xcf, 0x24, 0x68, 0x89, 0xd1, 0xe7, 0xbc, 0x1b, 0x26, 0x1c, 0x58, 0x42, 0xa3, 0xf5, 0x8c,
0xf1, 0x0c, 0x37, 0x80, 0x87, 0x51, 0x01, 0xec, 0x08, 0x58, 0x7e, 0xd0, 0xfa, 0x3f, 0xce, 0xe2, 0xa5, 0x3c, 0xc5, 0x73, 0xc0, 0x7b, 0x7e, 0x0e, 0xec, 0x10, 0x58, 0xb6, 0xdf, 0x3c, 0x1b, 0xa4,
0x4c, 0x2d, 0xdc, 0x96, 0xdf, 0xb4, 0xa7, 0xb5, 0x52, 0x79, 0x8c, 0xb2, 0xc8, 0xf2, 0x50, 0x7f, 0x41, 0xaa, 0x16, 0x6e, 0xca, 0x37, 0xed, 0x69, 0x2e, 0x96, 0x1e, 0xa3, 0xcc, 0xb2, 0xac, 0xa7,
0x6d, 0xdf, 0x45, 0xcd, 0x00, 0x5e, 0x0d, 0xa1, 0xe0, 0x8f, 0x80, 0x46, 0xc0, 0xf0, 0x12, 0xaa, 0x5f, 0x5b, 0xb7, 0x51, 0xc3, 0x83, 0x97, 0x7d, 0xc8, 0xf9, 0x03, 0xa0, 0x3e, 0x30, 0x3c, 0x8f,
0xed, 0x75, 0xc9, 0xd4, 0xfa, 0xd4, 0x8d, 0x99, 0xa0, 0xd6, 0xef, 0xe2, 0x16, 0x5a, 0x18, 0x16, 0x6a, 0xbb, 0x1d, 0x32, 0xb6, 0x36, 0x76, 0x75, 0xc2, 0xab, 0x85, 0x1d, 0xdc, 0x44, 0x33, 0xfd,
0xb2, 0xe5, 0x00, 0x48, 0x4d, 0xa8, 0x8b, 0x81, 0xfd, 0xdd, 0x3e, 0x6d, 0xa0, 0xd5, 0x3d, 0x33, 0x5c, 0xa6, 0x8c, 0x81, 0xd4, 0x84, 0x3a, 0xeb, 0xd9, 0xef, 0xd6, 0x9b, 0x06, 0x5a, 0xda, 0x35,
0x50, 0x20, 0xa6, 0x33, 0xa4, 0x11, 0xc6, 0x75, 0x54, 0x3b, 0xda, 0x54, 0xd5, 0xf5, 0xcd, 0x0b, 0x05, 0x79, 0xa2, 0x3a, 0x43, 0x1a, 0x62, 0x5c, 0x46, 0xb5, 0xc3, 0x0d, 0x15, 0x5d, 0xdf, 0x58,
0x1b, 0x67, 0x47, 0xde, 0x30, 0x25, 0x81, 0x30, 0xe0, 0x3b, 0x68, 0x96, 0xd1, 0x34, 0x06, 0x32, 0x5e, 0x3f, 0x59, 0xf2, 0xba, 0x09, 0xf1, 0x84, 0x01, 0xdf, 0x42, 0x93, 0x8c, 0x26, 0x01, 0x90,
0xad, 0x9c, 0xad, 0x73, 0x4e, 0xb9, 0x54, 0xda, 0xb5, 0x11, 0xdf, 0x44, 0xd3, 0xf9, 0x90, 0x93, 0x71, 0xe5, 0x6c, 0x0e, 0x38, 0xe5, 0x52, 0x61, 0xd7, 0x46, 0x7c, 0x0d, 0x8d, 0x67, 0x7d, 0x4e,
0x19, 0xe5, 0x27, 0xae, 0x7f, 0x7f, 0x58, 0xce, 0x13, 0x48, 0x13, 0xde, 0x46, 0x8d, 0x08, 0x12, 0x26, 0x94, 0x9f, 0x54, 0xfd, 0x7b, 0xfd, 0xa2, 0x1e, 0x4f, 0x9a, 0xf0, 0x16, 0x9a, 0xf3, 0x21,
0xe0, 0xd0, 0xd3, 0x4d, 0x66, 0x55, 0xd1, 0xba, 0x5b, 0xd4, 0x55, 0x0e, 0xa7, 0x55, 0x3d, 0xaa, 0x02, 0x0e, 0x5d, 0x9d, 0x64, 0x52, 0x05, 0xad, 0x55, 0x83, 0x3a, 0xca, 0x51, 0x49, 0x55, 0xf7,
0x34, 0xd9, 0x90, 0x1f, 0xa7, 0x64, 0xce, 0xd7, 0xf0, 0xd9, 0x71, 0x6a, 0x1b, 0x0a, 0x13, 0xbe, 0x4b, 0x4d, 0x26, 0xe4, 0x47, 0x09, 0x99, 0x72, 0x25, 0x7c, 0x72, 0x94, 0xd8, 0x84, 0xc2, 0x84,
0x87, 0x50, 0x98, 0x0d, 0x72, 0x1a, 0xf2, 0x7e, 0x96, 0x92, 0x79, 0x55, 0x72, 0xc5, 0x2d, 0xd9, 0xef, 0x20, 0xd4, 0x4b, 0xe3, 0x8c, 0xf6, 0x78, 0x98, 0x26, 0x64, 0x5a, 0x85, 0x5c, 0xa8, 0x86,
0xb6, 0xeb, 0x65, 0xe5, 0x99, 0x12, 0x7c, 0x1f, 0xd5, 0x13, 0xa0, 0x05, 0xf4, 0x62, 0x31, 0x31, 0x6c, 0xd9, 0xf5, 0x22, 0xf2, 0x44, 0x08, 0xbe, 0x8b, 0xea, 0x11, 0xd0, 0x1c, 0xba, 0x81, 0xa8,
0x27, 0x0b, 0x3e, 0xc2, 0x13, 0x69, 0xd8, 0x95, 0xeb, 0x96, 0x90, 0x58, 0x49, 0xee, 0x59, 0x13, 0x98, 0x93, 0x19, 0x17, 0xe1, 0x91, 0x34, 0xec, 0xc8, 0x75, 0x4b, 0x88, 0xac, 0x24, 0xf7, 0xac,
0x18, 0x1c, 0x65, 0x2f, 0x81, 0x2c, 0xfa, 0xf6, 0xac, 0x10, 0x81, 0x32, 0xd8, 0x3d, 0x27, 0x95, 0x09, 0x0c, 0x0e, 0xd3, 0x17, 0x40, 0x66, 0x5d, 0x7b, 0x56, 0x08, 0x4f, 0x19, 0xec, 0x9e, 0xa3,
0x26, 0xaf, 0x85, 0x26, 0x94, 0x0d, 0x08, 0xf2, 0x5d, 0x4b, 0x47, 0x2e, 0xd9, 0x6b, 0x51, 0x46, 0x52, 0x93, 0xd7, 0x42, 0x23, 0xca, 0x62, 0x82, 0x5c, 0xd7, 0xd2, 0x96, 0x4b, 0xf6, 0x5a, 0x94,
0xbc, 0x85, 0xe6, 0x0e, 0x55, 0x9a, 0x48, 0xa4, 0x4a, 0x2e, 0x7b, 0xef, 0x5c, 0x07, 0x2e, 0x30, 0x11, 0x6f, 0xa2, 0xa9, 0x03, 0xd5, 0x4d, 0xc4, 0x57, 0x21, 0x2b, 0xce, 0x3b, 0xd7, 0x0d, 0xe7,
0x56, 0xdc, 0x41, 0x75, 0x3a, 0xe4, 0x87, 0x3d, 0x48, 0xe9, 0x41, 0x02, 0xe4, 0xa3, 0xf7, 0xc0, 0x19, 0x2b, 0x6e, 0xa3, 0x3a, 0xed, 0xf3, 0x83, 0x2e, 0x24, 0x74, 0x3f, 0x02, 0xf2, 0xd1, 0x79,
0x3a, 0xc2, 0xb1, 0xa3, 0x0c, 0x76, 0xbb, 0xd4, 0x4a, 0xb8, 0x8b, 0x1a, 0x0a, 0x11, 0xf5, 0x0b, 0x60, 0x6d, 0xe1, 0xd8, 0x56, 0x06, 0xbb, 0x5d, 0x6a, 0x25, 0xdc, 0x41, 0x73, 0x0a, 0xe1, 0x87,
0xc5, 0xf8, 0x34, 0xef, 0xdb, 0xaf, 0x64, 0x74, 0xb5, 0xc3, 0xee, 0x97, 0x56, 0x1a, 0xde, 0x41, 0xb9, 0x62, 0x7c, 0x9a, 0x76, 0xed, 0x57, 0x32, 0x3a, 0xda, 0x61, 0xf7, 0x4b, 0x4b, 0x0d, 0x6f,
0x4d, 0x45, 0x91, 0x31, 0xef, 0xd1, 0x28, 0x22, 0x9f, 0xc7, 0x62, 0x9e, 0x8b, 0x5f, 0x9d, 0x28, 0xa3, 0x86, 0xa2, 0xc8, 0x36, 0xef, 0x52, 0xdf, 0x27, 0x9f, 0x47, 0x62, 0x9e, 0x8a, 0xaf, 0xb6,
0x72, 0x30, 0x46, 0xc3, 0x4f, 0xd1, 0x4a, 0x85, 0xd1, 0x19, 0x22, 0x5f, 0x34, 0xe9, 0x9a, 0x9f, 0xef, 0x57, 0x30, 0x46, 0xc3, 0x8f, 0xd1, 0x62, 0x89, 0xd1, 0x3d, 0x44, 0xbe, 0x68, 0xd2, 0x25,
0x64, 0xc2, 0x67, 0x60, 0x4b, 0xd4, 0x91, 0x71, 0x8c, 0x2e, 0x55, 0xbc, 0xf0, 0x50, 0xc6, 0xb1, 0x37, 0xc9, 0x34, 0x9f, 0x81, 0xcd, 0xd3, 0x8a, 0x8c, 0x03, 0x74, 0xbe, 0xe4, 0xf5, 0x0e, 0x64,
0x97, 0xd3, 0xa2, 0x78, 0x9d, 0xb1, 0x88, 0x7c, 0xd5, 0xe0, 0x5b, 0x7e, 0xf0, 0xb6, 0x72, 0xef, 0x3b, 0x76, 0x33, 0x9a, 0xe7, 0xaf, 0x52, 0xe6, 0x93, 0xaf, 0x1a, 0x7c, 0xdd, 0x0d, 0xde, 0x52,
0x1b, 0x73, 0xd9, 0xe0, 0x22, 0xf5, 0x2e, 0xe3, 0xc7, 0x68, 0xb9, 0x6a, 0xa4, 0xa3, 0xf7, 0x4d, 0xee, 0x3d, 0x63, 0x2e, 0x12, 0x9c, 0xa3, 0xce, 0x65, 0xfc, 0x10, 0x2d, 0x94, 0x89, 0x74, 0xeb,
0xe3, 0xdb, 0x7e, 0xbc, 0x13, 0xbf, 0x26, 0x3d, 0xab, 0xda, 0xc3, 0x64, 0x59, 0x02, 0xea, 0x30, 0x7d, 0xd3, 0xf8, 0x96, 0x1b, 0x5f, 0x69, 0xbf, 0x06, 0x3d, 0xa9, 0xda, 0xc3, 0x64, 0x69, 0x04,
0xbf, 0x8f, 0x3d, 0xcc, 0x40, 0x58, 0xce, 0x1f, 0xa6, 0xd1, 0xec, 0x4c, 0x0a, 0xa3, 0x67, 0xfa, 0xea, 0x30, 0xbf, 0x8f, 0x3c, 0x4c, 0x4f, 0x58, 0x06, 0x0f, 0xd3, 0x68, 0xb6, 0x26, 0x85, 0xd1,
0x31, 0x76, 0x26, 0x59, 0x34, 0x3a, 0x93, 0x55, 0xf1, 0x43, 0x1d, 0x13, 0x48, 0x79, 0x3f, 0xa4, 0x35, 0xfd, 0x18, 0x59, 0x93, 0x0c, 0x1a, 0xae, 0xc9, 0xaa, 0xf8, 0xbe, 0x6e, 0x13, 0x48, 0x78,
0xe2, 0x56, 0x4e, 0x35, 0xe9, 0xea, 0x28, 0xa9, 0xb4, 0x94, 0x20, 0xa7, 0xce, 0x0d, 0x4a, 0x0c, 0xd8, 0xa3, 0xe2, 0x56, 0x7e, 0x6a, 0xd2, 0xc5, 0x61, 0x52, 0x61, 0x29, 0x40, 0x95, 0xb8, 0x6a,
0x9c, 0xfc, 0x9c, 0x18, 0x94, 0x5d, 0xe0, 0x23, 0x41, 0x11, 0x9a, 0x7b, 0x44, 0x12, 0xf3, 0x6b, 0xa3, 0x04, 0xc0, 0xc9, 0xaf, 0x53, 0x1b, 0x65, 0x07, 0xf8, 0x50, 0xa3, 0x08, 0xad, 0x7a, 0x44,
0xe2, 0x11, 0x9d, 0xc7, 0x18, 0xcd, 0xcd, 0x9b, 0x79, 0xef, 0xbf, 0x27, 0xe6, 0xcd, 0x7d, 0xf3, 0x12, 0xf3, 0xfb, 0xd4, 0x23, 0x1a, 0xc4, 0x18, 0x0d, 0x3f, 0x43, 0xcb, 0x65, 0x35, 0x7a, 0xde,
0x36, 0x6f, 0xe6, 0xd9, 0x97, 0x3c, 0x35, 0x96, 0xe1, 0xfd, 0x19, 0xcb, 0x93, 0x53, 0x78, 0x78, 0x15, 0x92, 0xfc, 0xd1, 0xb8, 0x2b, 0xee, 0xaa, 0xcc, 0xe0, 0xa7, 0xe5, 0x30, 0x60, 0x3a, 0xb4,
0x95, 0xec, 0xf2, 0xcc, 0x7b, 0xf8, 0x3b, 0x91, 0xe7, 0x79, 0x0f, 0x95, 0xdc, 0x5e, 0x46, 0xcd, 0x84, 0x63, 0xb4, 0x52, 0xd6, 0x68, 0xe0, 0x19, 0xb0, 0x38, 0xcc, 0x73, 0xf9, 0xe3, 0xf6, 0x57,
0x9d, 0x41, 0xce, 0xdf, 0x04, 0x50, 0xe4, 0x59, 0x5a, 0xc0, 0x83, 0x95, 0x93, 0xf7, 0x6b, 0xff, 0xa7, 0xb8, 0xe1, 0xae, 0x58, 0x73, 0xf6, 0xac, 0xbd, 0x48, 0x44, 0xe8, 0x08, 0x83, 0x9d, 0x1d,
0x9d, 0x7c, 0x58, 0x9b, 0x7a, 0x2b, 0x3e, 0xef, 0xc4, 0xe7, 0x60, 0x4e, 0xfd, 0xc7, 0x6d, 0xfd, 0x95, 0xce, 0xcc, 0xce, 0xbf, 0x91, 0xb3, 0x23, 0x11, 0x8e, 0xd9, 0x29, 0xe5, 0xd6, 0x02, 0x6a,
0x0b, 0x00, 0x00, 0xff, 0xff, 0x67, 0xc7, 0xcd, 0x49, 0x3b, 0x07, 0x00, 0x00, 0x6c, 0xc7, 0x19, 0x7f, 0xed, 0x41, 0x9e, 0xa5, 0x49, 0x0e, 0xf7, 0x16, 0x8f, 0xdf, 0xaf, 0x9e,
0x39, 0xfe, 0xb0, 0x3a, 0xf6, 0x56, 0x3c, 0xef, 0xc4, 0xb3, 0x3f, 0xa5, 0xfe, 0x0f, 0x37, 0xff,
0x07, 0x00, 0x00, 0xff, 0xff, 0x38, 0x10, 0xa2, 0xb7, 0x67, 0x07, 0x00, 0x00,
} }

View File

@ -46,8 +46,8 @@ message InternalRaftRequest {
AuthenticateRequest authenticate = 1018; AuthenticateRequest authenticate = 1018;
AuthUserGetRequest auth_user_get = 1019; AuthUserGetRequest auth_user_get = 1019;
AuthRoleGetRequest auth_role_get = 1020; AuthRoleGetRequest auth_role_get = 1020;
AuthUserRevokeRequest auth_user_revoke = 1021; AuthUserRevokeRoleRequest auth_user_revoke_role = 1021;
AuthRoleRevokeRequest auth_role_revoke = 1022; AuthRoleRevokePermissionRequest auth_role_revoke_permission = 1022;
AuthRoleDeleteRequest auth_role_delete = 1023; AuthRoleDeleteRequest auth_role_delete = 1023;
} }

View File

@ -1592,15 +1592,15 @@ func (m *AuthUserGrantRequest) String() string { return proto.Compact
func (*AuthUserGrantRequest) ProtoMessage() {} func (*AuthUserGrantRequest) ProtoMessage() {}
func (*AuthUserGrantRequest) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{51} } func (*AuthUserGrantRequest) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{51} }
type AuthUserRevokeRequest struct { type AuthUserRevokeRoleRequest struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
} }
func (m *AuthUserRevokeRequest) Reset() { *m = AuthUserRevokeRequest{} } func (m *AuthUserRevokeRoleRequest) Reset() { *m = AuthUserRevokeRoleRequest{} }
func (m *AuthUserRevokeRequest) String() string { return proto.CompactTextString(m) } func (m *AuthUserRevokeRoleRequest) String() string { return proto.CompactTextString(m) }
func (*AuthUserRevokeRequest) ProtoMessage() {} func (*AuthUserRevokeRoleRequest) ProtoMessage() {}
func (*AuthUserRevokeRequest) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{52} } func (*AuthUserRevokeRoleRequest) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{52} }
type AuthRoleAddRequest struct { type AuthRoleAddRequest struct {
// name is the name of the role to add to the authentication system. // name is the name of the role to add to the authentication system.
@ -1649,15 +1649,17 @@ func (m *AuthRoleGrantRequest) GetPerm() *authpb.Permission {
return nil return nil
} }
type AuthRoleRevokeRequest struct { type AuthRoleRevokePermissionRequest struct {
Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
} }
func (m *AuthRoleRevokeRequest) Reset() { *m = AuthRoleRevokeRequest{} } func (m *AuthRoleRevokePermissionRequest) Reset() { *m = AuthRoleRevokePermissionRequest{} }
func (m *AuthRoleRevokeRequest) String() string { return proto.CompactTextString(m) } func (m *AuthRoleRevokePermissionRequest) String() string { return proto.CompactTextString(m) }
func (*AuthRoleRevokeRequest) ProtoMessage() {} func (*AuthRoleRevokePermissionRequest) ProtoMessage() {}
func (*AuthRoleRevokeRequest) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{57} } func (*AuthRoleRevokePermissionRequest) Descriptor() ([]byte, []int) {
return fileDescriptorRpc, []int{57}
}
type AuthEnableResponse struct { type AuthEnableResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
@ -1792,16 +1794,16 @@ func (m *AuthUserGrantResponse) GetHeader() *ResponseHeader {
return nil return nil
} }
type AuthUserRevokeResponse struct { type AuthUserRevokeRoleResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
} }
func (m *AuthUserRevokeResponse) Reset() { *m = AuthUserRevokeResponse{} } func (m *AuthUserRevokeRoleResponse) Reset() { *m = AuthUserRevokeRoleResponse{} }
func (m *AuthUserRevokeResponse) String() string { return proto.CompactTextString(m) } func (m *AuthUserRevokeRoleResponse) String() string { return proto.CompactTextString(m) }
func (*AuthUserRevokeResponse) ProtoMessage() {} func (*AuthUserRevokeRoleResponse) ProtoMessage() {}
func (*AuthUserRevokeResponse) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{66} } func (*AuthUserRevokeRoleResponse) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{66} }
func (m *AuthUserRevokeResponse) GetHeader() *ResponseHeader { func (m *AuthUserRevokeRoleResponse) GetHeader() *ResponseHeader {
if m != nil { if m != nil {
return m.Header return m.Header
} }
@ -1880,16 +1882,18 @@ func (m *AuthRoleGrantResponse) GetHeader() *ResponseHeader {
return nil return nil
} }
type AuthRoleRevokeResponse struct { type AuthRoleRevokePermissionResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
} }
func (m *AuthRoleRevokeResponse) Reset() { *m = AuthRoleRevokeResponse{} } func (m *AuthRoleRevokePermissionResponse) Reset() { *m = AuthRoleRevokePermissionResponse{} }
func (m *AuthRoleRevokeResponse) String() string { return proto.CompactTextString(m) } func (m *AuthRoleRevokePermissionResponse) String() string { return proto.CompactTextString(m) }
func (*AuthRoleRevokeResponse) ProtoMessage() {} func (*AuthRoleRevokePermissionResponse) ProtoMessage() {}
func (*AuthRoleRevokeResponse) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{71} } func (*AuthRoleRevokePermissionResponse) Descriptor() ([]byte, []int) {
return fileDescriptorRpc, []int{71}
}
func (m *AuthRoleRevokeResponse) GetHeader() *ResponseHeader { func (m *AuthRoleRevokePermissionResponse) GetHeader() *ResponseHeader {
if m != nil { if m != nil {
return m.Header return m.Header
} }
@ -1949,12 +1953,12 @@ func init() {
proto.RegisterType((*AuthUserDeleteRequest)(nil), "etcdserverpb.AuthUserDeleteRequest") proto.RegisterType((*AuthUserDeleteRequest)(nil), "etcdserverpb.AuthUserDeleteRequest")
proto.RegisterType((*AuthUserChangePasswordRequest)(nil), "etcdserverpb.AuthUserChangePasswordRequest") proto.RegisterType((*AuthUserChangePasswordRequest)(nil), "etcdserverpb.AuthUserChangePasswordRequest")
proto.RegisterType((*AuthUserGrantRequest)(nil), "etcdserverpb.AuthUserGrantRequest") proto.RegisterType((*AuthUserGrantRequest)(nil), "etcdserverpb.AuthUserGrantRequest")
proto.RegisterType((*AuthUserRevokeRequest)(nil), "etcdserverpb.AuthUserRevokeRequest") proto.RegisterType((*AuthUserRevokeRoleRequest)(nil), "etcdserverpb.AuthUserRevokeRoleRequest")
proto.RegisterType((*AuthRoleAddRequest)(nil), "etcdserverpb.AuthRoleAddRequest") proto.RegisterType((*AuthRoleAddRequest)(nil), "etcdserverpb.AuthRoleAddRequest")
proto.RegisterType((*AuthRoleGetRequest)(nil), "etcdserverpb.AuthRoleGetRequest") proto.RegisterType((*AuthRoleGetRequest)(nil), "etcdserverpb.AuthRoleGetRequest")
proto.RegisterType((*AuthRoleDeleteRequest)(nil), "etcdserverpb.AuthRoleDeleteRequest") proto.RegisterType((*AuthRoleDeleteRequest)(nil), "etcdserverpb.AuthRoleDeleteRequest")
proto.RegisterType((*AuthRoleGrantRequest)(nil), "etcdserverpb.AuthRoleGrantRequest") proto.RegisterType((*AuthRoleGrantRequest)(nil), "etcdserverpb.AuthRoleGrantRequest")
proto.RegisterType((*AuthRoleRevokeRequest)(nil), "etcdserverpb.AuthRoleRevokeRequest") proto.RegisterType((*AuthRoleRevokePermissionRequest)(nil), "etcdserverpb.AuthRoleRevokePermissionRequest")
proto.RegisterType((*AuthEnableResponse)(nil), "etcdserverpb.AuthEnableResponse") proto.RegisterType((*AuthEnableResponse)(nil), "etcdserverpb.AuthEnableResponse")
proto.RegisterType((*AuthDisableResponse)(nil), "etcdserverpb.AuthDisableResponse") proto.RegisterType((*AuthDisableResponse)(nil), "etcdserverpb.AuthDisableResponse")
proto.RegisterType((*AuthenticateResponse)(nil), "etcdserverpb.AuthenticateResponse") proto.RegisterType((*AuthenticateResponse)(nil), "etcdserverpb.AuthenticateResponse")
@ -1963,12 +1967,12 @@ func init() {
proto.RegisterType((*AuthUserDeleteResponse)(nil), "etcdserverpb.AuthUserDeleteResponse") proto.RegisterType((*AuthUserDeleteResponse)(nil), "etcdserverpb.AuthUserDeleteResponse")
proto.RegisterType((*AuthUserChangePasswordResponse)(nil), "etcdserverpb.AuthUserChangePasswordResponse") proto.RegisterType((*AuthUserChangePasswordResponse)(nil), "etcdserverpb.AuthUserChangePasswordResponse")
proto.RegisterType((*AuthUserGrantResponse)(nil), "etcdserverpb.AuthUserGrantResponse") proto.RegisterType((*AuthUserGrantResponse)(nil), "etcdserverpb.AuthUserGrantResponse")
proto.RegisterType((*AuthUserRevokeResponse)(nil), "etcdserverpb.AuthUserRevokeResponse") proto.RegisterType((*AuthUserRevokeRoleResponse)(nil), "etcdserverpb.AuthUserRevokeRoleResponse")
proto.RegisterType((*AuthRoleAddResponse)(nil), "etcdserverpb.AuthRoleAddResponse") proto.RegisterType((*AuthRoleAddResponse)(nil), "etcdserverpb.AuthRoleAddResponse")
proto.RegisterType((*AuthRoleGetResponse)(nil), "etcdserverpb.AuthRoleGetResponse") proto.RegisterType((*AuthRoleGetResponse)(nil), "etcdserverpb.AuthRoleGetResponse")
proto.RegisterType((*AuthRoleDeleteResponse)(nil), "etcdserverpb.AuthRoleDeleteResponse") proto.RegisterType((*AuthRoleDeleteResponse)(nil), "etcdserverpb.AuthRoleDeleteResponse")
proto.RegisterType((*AuthRoleGrantResponse)(nil), "etcdserverpb.AuthRoleGrantResponse") proto.RegisterType((*AuthRoleGrantResponse)(nil), "etcdserverpb.AuthRoleGrantResponse")
proto.RegisterType((*AuthRoleRevokeResponse)(nil), "etcdserverpb.AuthRoleRevokeResponse") proto.RegisterType((*AuthRoleRevokePermissionResponse)(nil), "etcdserverpb.AuthRoleRevokePermissionResponse")
proto.RegisterEnum("etcdserverpb.AlarmType", AlarmType_name, AlarmType_value) proto.RegisterEnum("etcdserverpb.AlarmType", AlarmType_name, AlarmType_value)
proto.RegisterEnum("etcdserverpb.RangeRequest_SortOrder", RangeRequest_SortOrder_name, RangeRequest_SortOrder_value) proto.RegisterEnum("etcdserverpb.RangeRequest_SortOrder", RangeRequest_SortOrder_name, RangeRequest_SortOrder_value)
proto.RegisterEnum("etcdserverpb.RangeRequest_SortTarget", RangeRequest_SortTarget_name, RangeRequest_SortTarget_value) proto.RegisterEnum("etcdserverpb.RangeRequest_SortTarget", RangeRequest_SortTarget_name, RangeRequest_SortTarget_value)
@ -2913,8 +2917,8 @@ type AuthClient interface {
UserChangePassword(ctx context.Context, in *AuthUserChangePasswordRequest, opts ...grpc.CallOption) (*AuthUserChangePasswordResponse, error) UserChangePassword(ctx context.Context, in *AuthUserChangePasswordRequest, opts ...grpc.CallOption) (*AuthUserChangePasswordResponse, error)
// UserGrant grants a role to a specified user. // UserGrant grants a role to a specified user.
UserGrant(ctx context.Context, in *AuthUserGrantRequest, opts ...grpc.CallOption) (*AuthUserGrantResponse, error) UserGrant(ctx context.Context, in *AuthUserGrantRequest, opts ...grpc.CallOption) (*AuthUserGrantResponse, error)
// UserRevoke revokes a role of specified user. // UserRevokeRole revokes a role of specified user.
UserRevoke(ctx context.Context, in *AuthUserRevokeRequest, opts ...grpc.CallOption) (*AuthUserRevokeResponse, error) UserRevokeRole(ctx context.Context, in *AuthUserRevokeRoleRequest, opts ...grpc.CallOption) (*AuthUserRevokeRoleResponse, error)
// RoleAdd adds a new role. // RoleAdd adds a new role.
RoleAdd(ctx context.Context, in *AuthRoleAddRequest, opts ...grpc.CallOption) (*AuthRoleAddResponse, error) RoleAdd(ctx context.Context, in *AuthRoleAddRequest, opts ...grpc.CallOption) (*AuthRoleAddResponse, error)
// RoleGet gets detailed role information or lists all roles. // RoleGet gets detailed role information or lists all roles.
@ -2923,8 +2927,8 @@ type AuthClient interface {
RoleDelete(ctx context.Context, in *AuthRoleDeleteRequest, opts ...grpc.CallOption) (*AuthRoleDeleteResponse, error) RoleDelete(ctx context.Context, in *AuthRoleDeleteRequest, opts ...grpc.CallOption) (*AuthRoleDeleteResponse, error)
// RoleGrant grants a permission of a specified key or range to a specified role. // RoleGrant grants a permission of a specified key or range to a specified role.
RoleGrant(ctx context.Context, in *AuthRoleGrantRequest, opts ...grpc.CallOption) (*AuthRoleGrantResponse, error) RoleGrant(ctx context.Context, in *AuthRoleGrantRequest, opts ...grpc.CallOption) (*AuthRoleGrantResponse, error)
// RoleRevoke revokes a key or range permission of a specified role. // RoleRevokePermission revokes a key or range permission of a specified role.
RoleRevoke(ctx context.Context, in *AuthRoleRevokeRequest, opts ...grpc.CallOption) (*AuthRoleRevokeResponse, error) RoleRevokePermission(ctx context.Context, in *AuthRoleRevokePermissionRequest, opts ...grpc.CallOption) (*AuthRoleRevokePermissionResponse, error)
} }
type authClient struct { type authClient struct {
@ -3007,9 +3011,9 @@ func (c *authClient) UserGrant(ctx context.Context, in *AuthUserGrantRequest, op
return out, nil return out, nil
} }
func (c *authClient) UserRevoke(ctx context.Context, in *AuthUserRevokeRequest, opts ...grpc.CallOption) (*AuthUserRevokeResponse, error) { func (c *authClient) UserRevokeRole(ctx context.Context, in *AuthUserRevokeRoleRequest, opts ...grpc.CallOption) (*AuthUserRevokeRoleResponse, error) {
out := new(AuthUserRevokeResponse) out := new(AuthUserRevokeRoleResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Auth/UserRevoke", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/etcdserverpb.Auth/UserRevokeRole", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -3052,9 +3056,9 @@ func (c *authClient) RoleGrant(ctx context.Context, in *AuthRoleGrantRequest, op
return out, nil return out, nil
} }
func (c *authClient) RoleRevoke(ctx context.Context, in *AuthRoleRevokeRequest, opts ...grpc.CallOption) (*AuthRoleRevokeResponse, error) { func (c *authClient) RoleRevokePermission(ctx context.Context, in *AuthRoleRevokePermissionRequest, opts ...grpc.CallOption) (*AuthRoleRevokePermissionResponse, error) {
out := new(AuthRoleRevokeResponse) out := new(AuthRoleRevokePermissionResponse)
err := grpc.Invoke(ctx, "/etcdserverpb.Auth/RoleRevoke", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/etcdserverpb.Auth/RoleRevokePermission", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -3080,8 +3084,8 @@ type AuthServer interface {
UserChangePassword(context.Context, *AuthUserChangePasswordRequest) (*AuthUserChangePasswordResponse, error) UserChangePassword(context.Context, *AuthUserChangePasswordRequest) (*AuthUserChangePasswordResponse, error)
// UserGrant grants a role to a specified user. // UserGrant grants a role to a specified user.
UserGrant(context.Context, *AuthUserGrantRequest) (*AuthUserGrantResponse, error) UserGrant(context.Context, *AuthUserGrantRequest) (*AuthUserGrantResponse, error)
// UserRevoke revokes a role of specified user. // UserRevokeRole revokes a role of specified user.
UserRevoke(context.Context, *AuthUserRevokeRequest) (*AuthUserRevokeResponse, error) UserRevokeRole(context.Context, *AuthUserRevokeRoleRequest) (*AuthUserRevokeRoleResponse, error)
// RoleAdd adds a new role. // RoleAdd adds a new role.
RoleAdd(context.Context, *AuthRoleAddRequest) (*AuthRoleAddResponse, error) RoleAdd(context.Context, *AuthRoleAddRequest) (*AuthRoleAddResponse, error)
// RoleGet gets detailed role information or lists all roles. // RoleGet gets detailed role information or lists all roles.
@ -3090,8 +3094,8 @@ type AuthServer interface {
RoleDelete(context.Context, *AuthRoleDeleteRequest) (*AuthRoleDeleteResponse, error) RoleDelete(context.Context, *AuthRoleDeleteRequest) (*AuthRoleDeleteResponse, error)
// RoleGrant grants a permission of a specified key or range to a specified role. // RoleGrant grants a permission of a specified key or range to a specified role.
RoleGrant(context.Context, *AuthRoleGrantRequest) (*AuthRoleGrantResponse, error) RoleGrant(context.Context, *AuthRoleGrantRequest) (*AuthRoleGrantResponse, error)
// RoleRevoke revokes a key or range permission of a specified role. // RoleRevokePermission revokes a key or range permission of a specified role.
RoleRevoke(context.Context, *AuthRoleRevokeRequest) (*AuthRoleRevokeResponse, error) RoleRevokePermission(context.Context, *AuthRoleRevokePermissionRequest) (*AuthRoleRevokePermissionResponse, error)
} }
func RegisterAuthServer(s *grpc.Server, srv AuthServer) { func RegisterAuthServer(s *grpc.Server, srv AuthServer) {
@ -3242,20 +3246,20 @@ func _Auth_UserGrant_Handler(srv interface{}, ctx context.Context, dec func(inte
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _Auth_UserRevoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _Auth_UserRevokeRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AuthUserRevokeRequest) in := new(AuthUserRevokeRoleRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
return nil, err return nil, err
} }
if interceptor == nil { if interceptor == nil {
return srv.(AuthServer).UserRevoke(ctx, in) return srv.(AuthServer).UserRevokeRole(ctx, in)
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/etcdserverpb.Auth/UserRevoke", FullMethod: "/etcdserverpb.Auth/UserRevokeRole",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AuthServer).UserRevoke(ctx, req.(*AuthUserRevokeRequest)) return srv.(AuthServer).UserRevokeRole(ctx, req.(*AuthUserRevokeRoleRequest))
} }
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
@ -3332,20 +3336,20 @@ func _Auth_RoleGrant_Handler(srv interface{}, ctx context.Context, dec func(inte
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _Auth_RoleRevoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _Auth_RoleRevokePermission_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AuthRoleRevokeRequest) in := new(AuthRoleRevokePermissionRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
return nil, err return nil, err
} }
if interceptor == nil { if interceptor == nil {
return srv.(AuthServer).RoleRevoke(ctx, in) return srv.(AuthServer).RoleRevokePermission(ctx, in)
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/etcdserverpb.Auth/RoleRevoke", FullMethod: "/etcdserverpb.Auth/RoleRevokePermission",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AuthServer).RoleRevoke(ctx, req.(*AuthRoleRevokeRequest)) return srv.(AuthServer).RoleRevokePermission(ctx, req.(*AuthRoleRevokePermissionRequest))
} }
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
@ -3387,8 +3391,8 @@ var _Auth_serviceDesc = grpc.ServiceDesc{
Handler: _Auth_UserGrant_Handler, Handler: _Auth_UserGrant_Handler,
}, },
{ {
MethodName: "UserRevoke", MethodName: "UserRevokeRole",
Handler: _Auth_UserRevoke_Handler, Handler: _Auth_UserRevokeRole_Handler,
}, },
{ {
MethodName: "RoleAdd", MethodName: "RoleAdd",
@ -3407,8 +3411,8 @@ var _Auth_serviceDesc = grpc.ServiceDesc{
Handler: _Auth_RoleGrant_Handler, Handler: _Auth_RoleGrant_Handler,
}, },
{ {
MethodName: "RoleRevoke", MethodName: "RoleRevokePermission",
Handler: _Auth_RoleRevoke_Handler, Handler: _Auth_RoleRevokePermission_Handler,
}, },
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
@ -5270,7 +5274,7 @@ func (m *AuthUserGrantRequest) MarshalTo(data []byte) (int, error) {
return i, nil return i, nil
} }
func (m *AuthUserRevokeRequest) Marshal() (data []byte, err error) { func (m *AuthUserRevokeRoleRequest) Marshal() (data []byte, err error) {
size := m.Size() size := m.Size()
data = make([]byte, size) data = make([]byte, size)
n, err := m.MarshalTo(data) n, err := m.MarshalTo(data)
@ -5280,7 +5284,7 @@ func (m *AuthUserRevokeRequest) Marshal() (data []byte, err error) {
return data[:n], nil return data[:n], nil
} }
func (m *AuthUserRevokeRequest) MarshalTo(data []byte) (int, error) { func (m *AuthUserRevokeRoleRequest) MarshalTo(data []byte) (int, error) {
var i int var i int
_ = i _ = i
var l int var l int
@ -5406,7 +5410,7 @@ func (m *AuthRoleGrantRequest) MarshalTo(data []byte) (int, error) {
return i, nil return i, nil
} }
func (m *AuthRoleRevokeRequest) Marshal() (data []byte, err error) { func (m *AuthRoleRevokePermissionRequest) Marshal() (data []byte, err error) {
size := m.Size() size := m.Size()
data = make([]byte, size) data = make([]byte, size)
n, err := m.MarshalTo(data) n, err := m.MarshalTo(data)
@ -5416,7 +5420,7 @@ func (m *AuthRoleRevokeRequest) Marshal() (data []byte, err error) {
return data[:n], nil return data[:n], nil
} }
func (m *AuthRoleRevokeRequest) MarshalTo(data []byte) (int, error) { func (m *AuthRoleRevokePermissionRequest) MarshalTo(data []byte) (int, error) {
var i int var i int
_ = i _ = i
var l int var l int
@ -5681,7 +5685,7 @@ func (m *AuthUserGrantResponse) MarshalTo(data []byte) (int, error) {
return i, nil return i, nil
} }
func (m *AuthUserRevokeResponse) Marshal() (data []byte, err error) { func (m *AuthUserRevokeRoleResponse) Marshal() (data []byte, err error) {
size := m.Size() size := m.Size()
data = make([]byte, size) data = make([]byte, size)
n, err := m.MarshalTo(data) n, err := m.MarshalTo(data)
@ -5691,7 +5695,7 @@ func (m *AuthUserRevokeResponse) Marshal() (data []byte, err error) {
return data[:n], nil return data[:n], nil
} }
func (m *AuthUserRevokeResponse) MarshalTo(data []byte) (int, error) { func (m *AuthUserRevokeRoleResponse) MarshalTo(data []byte) (int, error) {
var i int var i int
_ = i _ = i
var l int var l int
@ -5833,7 +5837,7 @@ func (m *AuthRoleGrantResponse) MarshalTo(data []byte) (int, error) {
return i, nil return i, nil
} }
func (m *AuthRoleRevokeResponse) Marshal() (data []byte, err error) { func (m *AuthRoleRevokePermissionResponse) Marshal() (data []byte, err error) {
size := m.Size() size := m.Size()
data = make([]byte, size) data = make([]byte, size)
n, err := m.MarshalTo(data) n, err := m.MarshalTo(data)
@ -5843,7 +5847,7 @@ func (m *AuthRoleRevokeResponse) Marshal() (data []byte, err error) {
return data[:n], nil return data[:n], nil
} }
func (m *AuthRoleRevokeResponse) MarshalTo(data []byte) (int, error) { func (m *AuthRoleRevokePermissionResponse) MarshalTo(data []byte) (int, error) {
var i int var i int
_ = i _ = i
var l int var l int
@ -6689,7 +6693,7 @@ func (m *AuthUserGrantRequest) Size() (n int) {
return n return n
} }
func (m *AuthUserRevokeRequest) Size() (n int) { func (m *AuthUserRevokeRoleRequest) Size() (n int) {
var l int var l int
_ = l _ = l
l = len(m.Name) l = len(m.Name)
@ -6747,7 +6751,7 @@ func (m *AuthRoleGrantRequest) Size() (n int) {
return n return n
} }
func (m *AuthRoleRevokeRequest) Size() (n int) { func (m *AuthRoleRevokePermissionRequest) Size() (n int) {
var l int var l int
_ = l _ = l
l = len(m.Role) l = len(m.Role)
@ -6851,7 +6855,7 @@ func (m *AuthUserGrantResponse) Size() (n int) {
return n return n
} }
func (m *AuthUserRevokeResponse) Size() (n int) { func (m *AuthUserRevokeRoleResponse) Size() (n int) {
var l int var l int
_ = l _ = l
if m.Header != nil { if m.Header != nil {
@ -6907,7 +6911,7 @@ func (m *AuthRoleGrantResponse) Size() (n int) {
return n return n
} }
func (m *AuthRoleRevokeResponse) Size() (n int) { func (m *AuthRoleRevokePermissionResponse) Size() (n int) {
var l int var l int
_ = l _ = l
if m.Header != nil { if m.Header != nil {
@ -12435,7 +12439,7 @@ func (m *AuthUserGrantRequest) Unmarshal(data []byte) error {
} }
return nil return nil
} }
func (m *AuthUserRevokeRequest) Unmarshal(data []byte) error { func (m *AuthUserRevokeRoleRequest) Unmarshal(data []byte) error {
l := len(data) l := len(data)
iNdEx := 0 iNdEx := 0
for iNdEx < l { for iNdEx < l {
@ -12458,10 +12462,10 @@ func (m *AuthUserRevokeRequest) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3) fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7) wireType := int(wire & 0x7)
if wireType == 4 { if wireType == 4 {
return fmt.Errorf("proto: AuthUserRevokeRequest: wiretype end group for non-group") return fmt.Errorf("proto: AuthUserRevokeRoleRequest: wiretype end group for non-group")
} }
if fieldNum <= 0 { if fieldNum <= 0 {
return fmt.Errorf("proto: AuthUserRevokeRequest: illegal tag %d (wire type %d)", fieldNum, wire) return fmt.Errorf("proto: AuthUserRevokeRoleRequest: illegal tag %d (wire type %d)", fieldNum, wire)
} }
switch fieldNum { switch fieldNum {
case 1: case 1:
@ -12892,7 +12896,7 @@ func (m *AuthRoleGrantRequest) Unmarshal(data []byte) error {
} }
return nil return nil
} }
func (m *AuthRoleRevokeRequest) Unmarshal(data []byte) error { func (m *AuthRoleRevokePermissionRequest) Unmarshal(data []byte) error {
l := len(data) l := len(data)
iNdEx := 0 iNdEx := 0
for iNdEx < l { for iNdEx < l {
@ -12915,10 +12919,10 @@ func (m *AuthRoleRevokeRequest) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3) fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7) wireType := int(wire & 0x7)
if wireType == 4 { if wireType == 4 {
return fmt.Errorf("proto: AuthRoleRevokeRequest: wiretype end group for non-group") return fmt.Errorf("proto: AuthRoleRevokePermissionRequest: wiretype end group for non-group")
} }
if fieldNum <= 0 { if fieldNum <= 0 {
return fmt.Errorf("proto: AuthRoleRevokeRequest: illegal tag %d (wire type %d)", fieldNum, wire) return fmt.Errorf("proto: AuthRoleRevokePermissionRequest: illegal tag %d (wire type %d)", fieldNum, wire)
} }
switch fieldNum { switch fieldNum {
case 1: case 1:
@ -13722,7 +13726,7 @@ func (m *AuthUserGrantResponse) Unmarshal(data []byte) error {
} }
return nil return nil
} }
func (m *AuthUserRevokeResponse) Unmarshal(data []byte) error { func (m *AuthUserRevokeRoleResponse) Unmarshal(data []byte) error {
l := len(data) l := len(data)
iNdEx := 0 iNdEx := 0
for iNdEx < l { for iNdEx < l {
@ -13745,10 +13749,10 @@ func (m *AuthUserRevokeResponse) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3) fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7) wireType := int(wire & 0x7)
if wireType == 4 { if wireType == 4 {
return fmt.Errorf("proto: AuthUserRevokeResponse: wiretype end group for non-group") return fmt.Errorf("proto: AuthUserRevokeRoleResponse: wiretype end group for non-group")
} }
if fieldNum <= 0 { if fieldNum <= 0 {
return fmt.Errorf("proto: AuthUserRevokeResponse: illegal tag %d (wire type %d)", fieldNum, wire) return fmt.Errorf("proto: AuthUserRevokeRoleResponse: illegal tag %d (wire type %d)", fieldNum, wire)
} }
switch fieldNum { switch fieldNum {
case 1: case 1:
@ -14168,7 +14172,7 @@ func (m *AuthRoleGrantResponse) Unmarshal(data []byte) error {
} }
return nil return nil
} }
func (m *AuthRoleRevokeResponse) Unmarshal(data []byte) error { func (m *AuthRoleRevokePermissionResponse) Unmarshal(data []byte) error {
l := len(data) l := len(data)
iNdEx := 0 iNdEx := 0
for iNdEx < l { for iNdEx < l {
@ -14191,10 +14195,10 @@ func (m *AuthRoleRevokeResponse) Unmarshal(data []byte) error {
fieldNum := int32(wire >> 3) fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7) wireType := int(wire & 0x7)
if wireType == 4 { if wireType == 4 {
return fmt.Errorf("proto: AuthRoleRevokeResponse: wiretype end group for non-group") return fmt.Errorf("proto: AuthRoleRevokePermissionResponse: wiretype end group for non-group")
} }
if fieldNum <= 0 { if fieldNum <= 0 {
return fmt.Errorf("proto: AuthRoleRevokeResponse: illegal tag %d (wire type %d)", fieldNum, wire) return fmt.Errorf("proto: AuthRoleRevokePermissionResponse: illegal tag %d (wire type %d)", fieldNum, wire)
} }
switch fieldNum { switch fieldNum {
case 1: case 1:
@ -14357,169 +14361,170 @@ var (
) )
var fileDescriptorRpc = []byte{ var fileDescriptorRpc = []byte{
// 2616 bytes of a gzipped FileDescriptorProto // 2638 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x5a, 0xcd, 0x72, 0x1c, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x5a, 0xcd, 0x72, 0x1b, 0xc7,
0x11, 0xd6, 0xfc, 0x68, 0x46, 0x93, 0x33, 0x1a, 0xcb, 0x25, 0xd9, 0xc8, 0xe3, 0x9f, 0xf5, 0xb6, 0x11, 0x26, 0x7e, 0x08, 0x10, 0x0d, 0x10, 0xa2, 0x86, 0x94, 0x42, 0xad, 0x6c, 0x49, 0x5e, 0x49,
0xed, 0x5d, 0xc3, 0x2e, 0x32, 0x2b, 0x96, 0x03, 0xc1, 0xe2, 0x8d, 0x91, 0x66, 0xd6, 0x16, 0x92, 0x96, 0x12, 0xdb, 0x50, 0xcc, 0x38, 0x87, 0x54, 0x5c, 0x4a, 0x81, 0x04, 0x2c, 0x31, 0xa4, 0x48,
0x25, 0x6f, 0x6b, 0x24, 0xb3, 0x27, 0x45, 0xcf, 0x4c, 0x59, 0xea, 0xf0, 0xfc, 0x6d, 0x77, 0x8f, 0x79, 0x09, 0x52, 0xf6, 0x89, 0xb5, 0x04, 0x46, 0x24, 0x4a, 0xf8, 0xf3, 0xee, 0x82, 0x12, 0x55,
0x6c, 0x39, 0x82, 0x0b, 0x11, 0x3c, 0xc1, 0x72, 0x22, 0x78, 0x01, 0x1e, 0x80, 0x77, 0x20, 0xb8, 0x95, 0x4b, 0xaa, 0x72, 0xc8, 0xd9, 0x39, 0xa5, 0xf2, 0x02, 0x79, 0x80, 0xbc, 0x43, 0x2a, 0x97,
0xc0, 0x13, 0x00, 0xc1, 0x89, 0xe0, 0xc2, 0x1d, 0x2e, 0x64, 0xfd, 0x75, 0x57, 0xd7, 0x74, 0x8f, 0xe4, 0x09, 0x52, 0xa9, 0x9c, 0x52, 0xb9, 0xe4, 0x9e, 0x5c, 0xd2, 0xf3, 0xb7, 0x3b, 0xbb, 0x98,
0xbd, 0xb4, 0x39, 0x58, 0xea, 0xca, 0xca, 0xfc, 0x2a, 0x2b, 0x2b, 0x2b, 0x2b, 0x33, 0x65, 0xa8, 0x85, 0xe4, 0xac, 0x72, 0x10, 0xb9, 0xd3, 0xd3, 0xfd, 0x4d, 0x4f, 0x4f, 0x4f, 0x4f, 0x77, 0x53,
0x78, 0x93, 0xde, 0xc6, 0xc4, 0x1b, 0x07, 0x63, 0x52, 0xa3, 0x41, 0xaf, 0xef, 0x53, 0xef, 0x9c, 0x50, 0xf1, 0x26, 0xdd, 0xc6, 0xc4, 0x1b, 0x07, 0x63, 0x52, 0xa3, 0x41, 0xb7, 0xe7, 0x53, 0xef,
0x7a, 0x93, 0x6e, 0x63, 0xed, 0x74, 0x7c, 0x3a, 0xe6, 0x13, 0x0f, 0xd8, 0x97, 0xe0, 0x69, 0x5c, 0x9c, 0x7a, 0x93, 0x13, 0x6b, 0xed, 0x74, 0x7c, 0x3a, 0xe6, 0x13, 0x0f, 0xd8, 0x97, 0xe0, 0xb1,
0x63, 0x3c, 0x0f, 0x86, 0xe7, 0xbd, 0x1e, 0xff, 0x31, 0xe9, 0x3e, 0x78, 0x71, 0x2e, 0xa7, 0xae, 0xae, 0x31, 0x9e, 0x07, 0xc3, 0xf3, 0x6e, 0x97, 0xff, 0x98, 0x9c, 0x3c, 0x78, 0x71, 0x2e, 0xa7,
0xf3, 0x29, 0x67, 0x1a, 0x9c, 0xf1, 0x1f, 0x38, 0xc5, 0x7e, 0x89, 0x49, 0xeb, 0x57, 0x39, 0xa8, 0xae, 0xf3, 0x29, 0x77, 0x1a, 0x9c, 0xf1, 0x1f, 0x38, 0xc5, 0x7e, 0x89, 0x49, 0xfb, 0x57, 0x39,
0xdb, 0xd4, 0x9f, 0x8c, 0x47, 0x3e, 0x7d, 0x4c, 0x9d, 0x3e, 0xf5, 0xc8, 0x4d, 0x80, 0xde, 0x60, 0xa8, 0x3b, 0xd4, 0x9f, 0x8c, 0x47, 0x3e, 0x7d, 0x4c, 0xdd, 0x1e, 0xf5, 0xc8, 0xfb, 0x00, 0xdd,
0xea, 0x07, 0xd4, 0x3b, 0x71, 0xfb, 0xeb, 0xb9, 0xdb, 0xb9, 0xfb, 0x45, 0xbb, 0x22, 0x29, 0x3b, 0xc1, 0xd4, 0x0f, 0xa8, 0x77, 0xdc, 0xef, 0xad, 0xe7, 0x6e, 0xe5, 0xee, 0x17, 0x9d, 0x8a, 0xa4,
0x7d, 0x72, 0x1d, 0x2a, 0x43, 0x3a, 0xec, 0x8a, 0xd9, 0x3c, 0x9f, 0x5d, 0x12, 0x04, 0x9c, 0x6c, 0x6c, 0xf7, 0xc8, 0x75, 0xa8, 0x0c, 0xe9, 0xf0, 0x44, 0xcc, 0xe6, 0xf9, 0xec, 0x92, 0x20, 0xe0,
0xc0, 0x92, 0x47, 0xcf, 0x5d, 0xdf, 0x1d, 0x8f, 0xd6, 0x0b, 0x38, 0x57, 0xb0, 0xc3, 0x31, 0x13, 0xa4, 0x05, 0x4b, 0x1e, 0x3d, 0xef, 0xfb, 0xfd, 0xf1, 0x68, 0xbd, 0x80, 0x73, 0x05, 0x27, 0x1c,
0xf4, 0x9c, 0xe7, 0xc1, 0x09, 0xc2, 0x0c, 0xd7, 0x8b, 0x42, 0x90, 0x11, 0x3a, 0x38, 0xb6, 0x7e, 0x33, 0x41, 0xcf, 0x7d, 0x1e, 0x1c, 0x23, 0xcc, 0x70, 0xbd, 0x28, 0x04, 0x19, 0xa1, 0x83, 0x63,
0x5d, 0x80, 0x9a, 0xed, 0x8c, 0x4e, 0xa9, 0x4d, 0xbf, 0x9e, 0x52, 0x3f, 0x20, 0x2b, 0x50, 0x78, 0xfb, 0x37, 0x05, 0xa8, 0x39, 0xee, 0xe8, 0x94, 0x3a, 0xf4, 0x9b, 0x29, 0xf5, 0x03, 0xb2, 0x02,
0x41, 0x2f, 0xf8, 0xf2, 0x35, 0x9b, 0x7d, 0x0a, 0x79, 0xe4, 0x38, 0xa1, 0x23, 0xb1, 0x70, 0x8d, 0x85, 0x17, 0xf4, 0x82, 0x2f, 0x5f, 0x73, 0xd8, 0xa7, 0x90, 0x47, 0x8e, 0x63, 0x3a, 0x12, 0x0b,
0xc9, 0x23, 0xa1, 0x3d, 0xea, 0x93, 0x35, 0x58, 0x1c, 0xb8, 0x43, 0x37, 0x90, 0xab, 0x8a, 0x41, 0xd7, 0x98, 0x3c, 0x12, 0xda, 0xa3, 0x1e, 0x59, 0x83, 0xc5, 0x41, 0x7f, 0xd8, 0x0f, 0xe4, 0xaa,
0x4c, 0x9d, 0xa2, 0xa1, 0xce, 0x36, 0x80, 0x3f, 0xf6, 0x82, 0x93, 0xb1, 0x87, 0x9b, 0x5e, 0x5f, 0x62, 0x10, 0x53, 0xa7, 0x98, 0x50, 0x67, 0x0b, 0xc0, 0x1f, 0x7b, 0xc1, 0xf1, 0xd8, 0xc3, 0x4d,
0xc4, 0xd9, 0xfa, 0xe6, 0xdd, 0x0d, 0xdd, 0xd4, 0x1b, 0xba, 0x42, 0x1b, 0x87, 0xc8, 0x7c, 0xc0, 0xaf, 0x2f, 0xe2, 0x6c, 0x7d, 0xe3, 0x4e, 0x43, 0x37, 0x75, 0x43, 0x57, 0xa8, 0x71, 0x80, 0xcc,
0x78, 0xed, 0x8a, 0xaf, 0x3e, 0xc9, 0x17, 0x50, 0xe5, 0x20, 0x81, 0xe3, 0x9d, 0xd2, 0x60, 0xbd, 0xfb, 0x8c, 0xd7, 0xa9, 0xf8, 0xea, 0x93, 0x7c, 0x01, 0x55, 0x0e, 0x12, 0xb8, 0xde, 0x29, 0x0d,
0xc4, 0x51, 0xee, 0xbd, 0x01, 0xa5, 0xc3, 0x99, 0x6d, 0xbe, 0xbc, 0xf8, 0x26, 0x16, 0xd4, 0x90, 0xd6, 0x4b, 0x1c, 0xe5, 0xee, 0x1b, 0x50, 0x3a, 0x9c, 0xd9, 0xe1, 0xcb, 0x8b, 0x6f, 0x62, 0x43,
0xdf, 0x75, 0x06, 0xee, 0x6b, 0xa7, 0x3b, 0xa0, 0xeb, 0x65, 0x04, 0x5a, 0xb2, 0x63, 0x34, 0x6b, 0x0d, 0xf9, 0xfb, 0xee, 0xa0, 0xff, 0xda, 0x3d, 0x19, 0xd0, 0xf5, 0x32, 0x02, 0x2d, 0x39, 0x31,
0x03, 0x2a, 0xa1, 0x0e, 0x64, 0x09, 0x8a, 0xfb, 0x07, 0xfb, 0xed, 0x95, 0x05, 0x02, 0x50, 0x6a, 0x9a, 0xdd, 0x80, 0x4a, 0xa8, 0x03, 0x59, 0x82, 0xe2, 0xde, 0xfe, 0x5e, 0x7b, 0x65, 0x81, 0x00,
0x1e, 0x6e, 0xb7, 0xf7, 0x5b, 0x2b, 0x39, 0x52, 0x85, 0x72, 0xab, 0x2d, 0x06, 0x79, 0x6b, 0x0b, 0x94, 0x9a, 0x07, 0x5b, 0xed, 0xbd, 0xd6, 0x4a, 0x8e, 0x54, 0xa1, 0xdc, 0x6a, 0x8b, 0x41, 0xde,
0x20, 0x5a, 0x8d, 0x94, 0xa1, 0xb0, 0xdb, 0xfe, 0x0a, 0xf9, 0x91, 0xe7, 0xb8, 0x6d, 0x1f, 0xee, 0xde, 0x04, 0x88, 0x56, 0x23, 0x65, 0x28, 0xec, 0xb4, 0xbf, 0x46, 0x7e, 0xe4, 0x39, 0x6a, 0x3b,
0x1c, 0xec, 0xa3, 0x00, 0x0a, 0x6f, 0xdb, 0xed, 0x66, 0xa7, 0xbd, 0x92, 0x67, 0x1c, 0x4f, 0x0e, 0x07, 0xdb, 0xfb, 0x7b, 0x28, 0x80, 0xc2, 0x5b, 0x4e, 0xbb, 0xd9, 0x69, 0xaf, 0xe4, 0x19, 0xc7,
0x5a, 0x2b, 0x05, 0x52, 0x81, 0xc5, 0xe3, 0xe6, 0xde, 0x51, 0x7b, 0xa5, 0x68, 0xfd, 0x02, 0x96, 0x93, 0xfd, 0xd6, 0x4a, 0x81, 0x54, 0x60, 0xf1, 0xa8, 0xb9, 0x7b, 0xd8, 0x5e, 0x29, 0xda, 0xbf,
0xa5, 0xfa, 0xc2, 0x45, 0xc8, 0xa7, 0x50, 0x3a, 0xe3, 0x6e, 0xc2, 0x4f, 0xa6, 0xba, 0x79, 0xc3, 0x80, 0x65, 0xa9, 0xbe, 0x70, 0x11, 0xf2, 0x19, 0x94, 0xce, 0xb8, 0x9b, 0xf0, 0x93, 0xa9, 0x6e,
0xd8, 0x6b, 0xcc, 0x95, 0x6c, 0xc9, 0x8b, 0xdb, 0x2b, 0xbc, 0x38, 0xf7, 0xf1, 0xd0, 0x0a, 0x28, 0xbc, 0x97, 0xd8, 0x6b, 0xcc, 0x95, 0x1c, 0xc9, 0x8b, 0xdb, 0x2b, 0xbc, 0x38, 0xf7, 0xf1, 0xd0,
0xb2, 0xb2, 0x21, 0x3c, 0x74, 0x63, 0x97, 0x5e, 0x1c, 0x3b, 0x83, 0x29, 0xb5, 0xd9, 0x24, 0x21, 0x0a, 0x28, 0xb2, 0xd2, 0x10, 0x1e, 0xda, 0xd8, 0xa1, 0x17, 0x47, 0xee, 0x60, 0x4a, 0x1d, 0x36,
0x50, 0x1c, 0x8e, 0x3d, 0xca, 0x0f, 0x70, 0xc9, 0xe6, 0xdf, 0xd6, 0xcf, 0x00, 0x9e, 0x4e, 0x83, 0x49, 0x08, 0x14, 0x87, 0x63, 0x8f, 0xf2, 0x03, 0x5c, 0x72, 0xf8, 0xb7, 0xfd, 0x73, 0x80, 0xa7,
0x74, 0x97, 0xc0, 0x53, 0x3f, 0x67, 0x08, 0xd2, 0x1d, 0xc4, 0x80, 0xfb, 0x02, 0x75, 0x7c, 0x1a, 0xd3, 0x20, 0xdd, 0x25, 0xf0, 0xd4, 0xcf, 0x19, 0x82, 0x74, 0x07, 0x31, 0xe0, 0xbe, 0x40, 0x5d,
0xfa, 0x02, 0x1b, 0x58, 0xdb, 0x50, 0xe5, 0x58, 0x59, 0x36, 0x82, 0x20, 0xa4, 0x45, 0x07, 0x34, 0x9f, 0x86, 0xbe, 0xc0, 0x06, 0xf6, 0x16, 0x54, 0x39, 0x56, 0x96, 0x8d, 0x20, 0x08, 0x69, 0xd1,
0xa0, 0x19, 0x7c, 0xd5, 0xa2, 0xb0, 0x1a, 0x03, 0xc9, 0x64, 0xda, 0x75, 0x28, 0xf7, 0x39, 0x98, 0x01, 0x0d, 0x68, 0x06, 0x5f, 0xb5, 0x29, 0xac, 0xc6, 0x40, 0x32, 0x99, 0x76, 0x1d, 0xca, 0x3d,
0x58, 0xa7, 0x60, 0xab, 0xa1, 0xf5, 0xaf, 0x1c, 0x5e, 0x29, 0xa1, 0xe1, 0xd1, 0x88, 0x79, 0x7c, 0x0e, 0x26, 0xd6, 0x29, 0x38, 0x6a, 0x68, 0xff, 0x2b, 0x87, 0x57, 0x4a, 0x68, 0x78, 0x38, 0x62,
0x13, 0x96, 0x3d, 0x31, 0x3e, 0xe1, 0xba, 0xc8, 0x75, 0x1a, 0xe9, 0xee, 0xfa, 0x78, 0xc1, 0xae, 0x1e, 0xdf, 0x84, 0x65, 0x4f, 0x8c, 0x8f, 0xb9, 0x2e, 0x72, 0x1d, 0x2b, 0xdd, 0x5d, 0x1f, 0x2f,
0x49, 0x11, 0x4e, 0x26, 0x3f, 0x81, 0xaa, 0x82, 0x98, 0x4c, 0x03, 0xbe, 0x62, 0x75, 0x73, 0x3d, 0x38, 0x35, 0x29, 0xc2, 0xc9, 0xe4, 0xa7, 0x50, 0x55, 0x10, 0x93, 0x69, 0xc0, 0x57, 0xac, 0x6e,
0x0e, 0x10, 0x9d, 0x18, 0x8a, 0x83, 0x64, 0x47, 0x22, 0xe9, 0xc0, 0x9a, 0x12, 0x16, 0x3a, 0x4a, 0xac, 0xc7, 0x01, 0xa2, 0x13, 0x43, 0x71, 0x90, 0xec, 0x48, 0x24, 0x1d, 0x58, 0x53, 0xc2, 0x42,
0x35, 0x0a, 0x1c, 0xe5, 0x76, 0x1c, 0x65, 0xd6, 0xcc, 0x88, 0x46, 0xa4, 0xbc, 0x36, 0xb9, 0x55, 0x47, 0xa9, 0x46, 0x81, 0xa3, 0xdc, 0x8a, 0xa3, 0xcc, 0x9a, 0x19, 0xd1, 0x88, 0x94, 0xd7, 0x26,
0x81, 0xb2, 0xa4, 0x5a, 0xff, 0xce, 0xa1, 0xbb, 0x4a, 0x33, 0x89, 0x2d, 0xb7, 0xa0, 0xee, 0x49, 0x37, 0x2b, 0x50, 0x96, 0x54, 0xfb, 0xdf, 0x39, 0x74, 0x57, 0x69, 0x26, 0xb1, 0xe5, 0x16, 0xd4,
0x42, 0x6c, 0xcf, 0xd7, 0x13, 0xf7, 0x2c, 0x0d, 0xbc, 0x60, 0x2f, 0x2b, 0x21, 0xb1, 0xeb, 0x87, 0x3d, 0x49, 0x88, 0xed, 0xf9, 0xba, 0x71, 0xcf, 0xd2, 0xc0, 0x0b, 0xce, 0xb2, 0x12, 0x12, 0xbb,
0x50, 0x0b, 0x51, 0xa2, 0x6d, 0x5f, 0x4b, 0xd8, 0x76, 0x88, 0x50, 0x55, 0x02, 0x6c, 0xe3, 0xcf, 0x7e, 0x08, 0xb5, 0x10, 0x25, 0xda, 0xf6, 0x35, 0xc3, 0xb6, 0x43, 0x84, 0xaa, 0x12, 0x60, 0x1b,
0xe0, 0x4a, 0x28, 0x9f, 0xb0, 0xf3, 0xf7, 0xe7, 0xec, 0x3c, 0x04, 0x5c, 0x55, 0x08, 0xfa, 0xde, 0x7f, 0x06, 0x57, 0x42, 0x79, 0xc3, 0xce, 0x3f, 0x98, 0xb3, 0xf3, 0x10, 0x70, 0x55, 0x21, 0xe8,
0x81, 0xc5, 0x37, 0x41, 0xb6, 0x7e, 0x53, 0x80, 0xf2, 0xf6, 0x78, 0x38, 0x71, 0x3c, 0x76, 0x4c, 0x7b, 0x07, 0x16, 0xdf, 0x04, 0xd9, 0xfe, 0x6d, 0x01, 0xca, 0x5b, 0xe3, 0xe1, 0xc4, 0xf5, 0xd8,
0x25, 0xa4, 0x4f, 0x07, 0x01, 0xdf, 0x6e, 0x7d, 0xf3, 0x4e, 0x7c, 0x05, 0xc9, 0xa6, 0x7e, 0xdb, 0x31, 0x95, 0x90, 0x3e, 0x1d, 0x04, 0x7c, 0xbb, 0xf5, 0x8d, 0xdb, 0xf1, 0x15, 0x24, 0x9b, 0xfa,
0x9c, 0xd5, 0x96, 0x22, 0x4c, 0x58, 0x86, 0xb3, 0xfc, 0x5b, 0x08, 0xcb, 0x60, 0x26, 0x45, 0xd4, 0xed, 0x70, 0x56, 0x47, 0x8a, 0x30, 0x61, 0x19, 0xce, 0xf2, 0x6f, 0x21, 0x2c, 0x83, 0x99, 0x14,
0x55, 0x28, 0x44, 0x57, 0xa1, 0x01, 0x65, 0x14, 0x8c, 0x42, 0x30, 0xee, 0x45, 0x11, 0xc8, 0x77, 0x51, 0x57, 0xa1, 0x10, 0x5d, 0x05, 0x0b, 0xca, 0x28, 0x18, 0x85, 0x60, 0xdc, 0x8b, 0x22, 0x90,
0xe1, 0x52, 0xcf, 0xa3, 0x0e, 0xb3, 0x87, 0x0a, 0xd3, 0x8b, 0x92, 0xa7, 0x2e, 0x26, 0x6c, 0x15, 0xef, 0xc3, 0xa5, 0xae, 0x47, 0x5d, 0x66, 0x0f, 0x15, 0xa6, 0x17, 0x25, 0x4f, 0x5d, 0x4c, 0x38,
0xae, 0xef, 0x40, 0x6d, 0x38, 0xee, 0x47, 0x7c, 0x25, 0xc9, 0x57, 0x45, 0x6a, 0xc8, 0x74, 0x55, 0x2a, 0x5c, 0xdf, 0x86, 0xda, 0x70, 0xdc, 0x8b, 0xf8, 0x4a, 0x92, 0xaf, 0x8a, 0xd4, 0x90, 0xe9,
0xc5, 0x03, 0x16, 0x3f, 0x6b, 0x38, 0x2b, 0x86, 0xd6, 0x27, 0xb0, 0x1c, 0xdb, 0x2b, 0x0b, 0x71, 0xaa, 0x8a, 0x07, 0x2c, 0x7e, 0xd6, 0x70, 0x56, 0x0c, 0xed, 0x4f, 0x61, 0x39, 0xb6, 0x57, 0x16,
0xed, 0x2f, 0x8f, 0x9a, 0x7b, 0x22, 0x1e, 0x3e, 0xe2, 0x21, 0xd0, 0xc6, 0x78, 0x88, 0x61, 0x75, 0xe2, 0xda, 0x5f, 0x1e, 0x36, 0x77, 0x45, 0x3c, 0x7c, 0xc4, 0x43, 0xa0, 0x83, 0xf1, 0x10, 0xc3,
0xaf, 0x7d, 0x78, 0x88, 0xd1, 0xf3, 0xb3, 0x50, 0x44, 0x06, 0x50, 0x2d, 0x6e, 0x2e, 0x68, 0x71, 0xea, 0x6e, 0xfb, 0xe0, 0x00, 0xa3, 0xe7, 0xe7, 0xa1, 0x88, 0x0c, 0xa0, 0x5a, 0xdc, 0x5c, 0xd0,
0x33, 0xa7, 0xe2, 0x66, 0x3e, 0x8a, 0x9b, 0x85, 0xad, 0x3a, 0xd4, 0x84, 0x41, 0x4e, 0xa6, 0xcc, 0xe2, 0x66, 0x4e, 0xc5, 0xcd, 0x7c, 0x14, 0x37, 0x0b, 0x9b, 0x75, 0xa8, 0x09, 0x83, 0x1c, 0x4f,
0x0f, 0xad, 0xdf, 0xe5, 0x00, 0x3a, 0xaf, 0x46, 0x2a, 0x60, 0x3c, 0x80, 0x72, 0x4f, 0x80, 0xe3, 0x99, 0x1f, 0xda, 0xbf, 0xcf, 0x01, 0x74, 0x5e, 0x8d, 0x54, 0xc0, 0x78, 0x00, 0xe5, 0xae, 0x00,
0x01, 0xb1, 0x98, 0x78, 0x25, 0xd1, 0xc6, 0xb6, 0xe2, 0xc2, 0xd8, 0x50, 0xf6, 0xa7, 0xbd, 0x1e, 0xc7, 0x03, 0x62, 0x31, 0xf1, 0x8a, 0xd1, 0xc6, 0x8e, 0xe2, 0xc2, 0xd8, 0x50, 0xf6, 0xa7, 0xdd,
0xf5, 0x55, 0x10, 0x35, 0x2f, 0xad, 0x76, 0xcf, 0x6d, 0xc5, 0xca, 0xa4, 0x9e, 0x3b, 0xee, 0x60, 0x2e, 0xf5, 0x55, 0x10, 0x4d, 0x5e, 0x5a, 0xed, 0x9e, 0x3b, 0x8a, 0x95, 0x49, 0x3d, 0x77, 0xfb,
0xca, 0xa3, 0xea, 0x1b, 0xa5, 0x24, 0xab, 0xf5, 0xdb, 0x1c, 0x54, 0xb9, 0xae, 0x99, 0xe2, 0xd2, 0x83, 0x29, 0x8f, 0xaa, 0x6f, 0x94, 0x92, 0xac, 0xf6, 0xef, 0x72, 0x50, 0xe5, 0xba, 0x66, 0x8a,
0x0d, 0xa8, 0x70, 0x35, 0x68, 0x5f, 0x46, 0xa6, 0x25, 0x3b, 0x22, 0x90, 0x1f, 0x63, 0x7c, 0x94, 0x4b, 0xef, 0x41, 0x85, 0xab, 0x41, 0x7b, 0x32, 0x32, 0x2d, 0x39, 0x11, 0x81, 0xfc, 0x04, 0xe3,
0x72, 0xbe, 0xd4, 0xed, 0x7a, 0x32, 0xac, 0x50, 0x2e, 0xe2, 0xb6, 0x76, 0xe1, 0x32, 0x37, 0x4f, 0xa3, 0x94, 0xf3, 0xa5, 0x6e, 0xd7, 0xcd, 0xb0, 0x42, 0xb9, 0x88, 0xdb, 0xde, 0x81, 0xcb, 0xdc,
0x2f, 0x60, 0x13, 0xd2, 0xa0, 0xfa, 0x43, 0x9f, 0x33, 0x1e, 0x7a, 0x9c, 0x9b, 0x9c, 0x5d, 0xf8, 0x3c, 0xdd, 0x80, 0x4d, 0x48, 0x83, 0xea, 0x0f, 0x7d, 0x2e, 0xf1, 0xd0, 0xe3, 0xdc, 0xe4, 0xec,
0x6e, 0xcf, 0x19, 0x48, 0x45, 0xc2, 0x31, 0x3e, 0x30, 0x44, 0x07, 0xcb, 0xf4, 0x36, 0x2c, 0x43, 0xc2, 0xef, 0x77, 0xdd, 0x81, 0x54, 0x24, 0x1c, 0xe3, 0x03, 0x43, 0x74, 0xb0, 0x4c, 0x6f, 0xc3,
0xf5, 0xb1, 0xe3, 0x9f, 0x49, 0x95, 0xac, 0x9f, 0x43, 0x4d, 0x0c, 0x33, 0x99, 0x11, 0x5f, 0xc5, 0x32, 0x54, 0x1f, 0xbb, 0xfe, 0x99, 0x54, 0xc9, 0xfe, 0x0a, 0x6a, 0x62, 0x98, 0xc9, 0x8c, 0xf8,
0x33, 0x44, 0xe1, 0x8a, 0x2f, 0xdb, 0xfc, 0xdb, 0xba, 0x0c, 0x97, 0x0e, 0x47, 0xce, 0xc4, 0x3f, 0x2a, 0x9e, 0x21, 0x0a, 0x57, 0x7c, 0xd9, 0xe1, 0xdf, 0xf6, 0x65, 0xb8, 0x74, 0x30, 0x72, 0x27,
0x1b, 0xab, 0x40, 0xcb, 0xd2, 0xb8, 0x95, 0x88, 0x96, 0x69, 0xc5, 0x0f, 0xe1, 0x92, 0x47, 0x87, 0xfe, 0xd9, 0x58, 0x05, 0x5a, 0x96, 0xc6, 0xad, 0x44, 0xb4, 0x4c, 0x2b, 0xde, 0x83, 0x4b, 0x1e,
0x8e, 0x3b, 0x72, 0x47, 0xa7, 0x27, 0xdd, 0x8b, 0x80, 0xfa, 0x32, 0xcb, 0xab, 0x87, 0xe4, 0x2d, 0x1d, 0xba, 0xfd, 0x51, 0x7f, 0x74, 0x7a, 0x7c, 0x72, 0x11, 0x50, 0x5f, 0x66, 0x79, 0xf5, 0x90,
0x46, 0x65, 0xaa, 0x75, 0x07, 0xe3, 0xae, 0xbc, 0xeb, 0xfc, 0xdb, 0xfa, 0x3d, 0xbe, 0x39, 0xcf, 0xbc, 0xc9, 0xa8, 0x4c, 0xb5, 0x93, 0xc1, 0xf8, 0x44, 0xde, 0x75, 0xfe, 0x6d, 0xff, 0x01, 0xdf,
0x9c, 0xa0, 0xa7, 0xac, 0x40, 0x76, 0xa0, 0x1e, 0xde, 0x70, 0x4e, 0x91, 0xba, 0x18, 0xd1, 0x9e, 0x9c, 0x67, 0x6e, 0xd0, 0x55, 0x56, 0x20, 0xdb, 0x50, 0x0f, 0x6f, 0x38, 0xa7, 0x48, 0x5d, 0x12,
0xcb, 0x6c, 0xcb, 0x1b, 0xaf, 0xa2, 0xfd, 0x72, 0x4f, 0x27, 0x70, 0x28, 0x67, 0xd4, 0xa3, 0x83, 0xd1, 0x9e, 0xcb, 0x6c, 0xc9, 0x1b, 0xaf, 0xa2, 0xfd, 0x72, 0x57, 0x27, 0x70, 0x28, 0x77, 0xd4,
0x10, 0x2a, 0x9f, 0x0e, 0xc5, 0x19, 0x75, 0x28, 0x9d, 0xb0, 0x75, 0x29, 0x7a, 0x09, 0xc5, 0xfd, 0xa5, 0x83, 0x10, 0x2a, 0x9f, 0x0e, 0xc5, 0x19, 0x75, 0x28, 0x9d, 0xb0, 0x79, 0x29, 0x7a, 0x09,
0xfc, 0x26, 0x07, 0x64, 0x56, 0x87, 0x6f, 0x9b, 0x84, 0xde, 0x83, 0xba, 0x8f, 0xd7, 0x3e, 0x38, 0xc5, 0xfd, 0xfc, 0x36, 0x07, 0x64, 0x56, 0x87, 0xef, 0x9a, 0x84, 0xde, 0x85, 0xba, 0x8f, 0xd7,
0x31, 0x72, 0xe0, 0x65, 0x4e, 0x0d, 0xa3, 0x14, 0x5a, 0x18, 0x93, 0xef, 0x53, 0x74, 0x69, 0xff, 0x3e, 0x38, 0x4e, 0xe4, 0xc0, 0xcb, 0x9c, 0x1a, 0x46, 0x29, 0xb4, 0x30, 0x26, 0xdf, 0xa7, 0xe8,
0x64, 0x34, 0x0e, 0xdc, 0xe7, 0x17, 0x3c, 0x32, 0x2e, 0xd9, 0x75, 0x45, 0xde, 0xe7, 0x54, 0xeb, 0xd2, 0xfe, 0xf1, 0x68, 0x1c, 0xf4, 0x9f, 0x5f, 0xf0, 0xc8, 0xb8, 0xe4, 0xd4, 0x15, 0x79, 0x8f,
0x81, 0x52, 0x4a, 0x57, 0x9e, 0x5c, 0x83, 0xa5, 0x97, 0x8c, 0xaa, 0xb2, 0x73, 0x7c, 0xf2, 0xf9, 0x53, 0xed, 0x07, 0x4a, 0x29, 0x5d, 0x79, 0x72, 0x0d, 0x96, 0x5e, 0x32, 0xaa, 0xca, 0xce, 0xf1,
0x78, 0xa7, 0x6f, 0xfd, 0x03, 0x1f, 0x40, 0x69, 0xfe, 0x4c, 0x3e, 0xa0, 0x2f, 0x91, 0x8f, 0x2d, 0xc9, 0xe7, 0xe3, 0xed, 0x9e, 0xfd, 0x0f, 0x7c, 0x00, 0xa5, 0xf9, 0x33, 0xf9, 0x80, 0xbe, 0x44,
0xc1, 0xf2, 0x0d, 0x71, 0x2c, 0x7d, 0x99, 0xa9, 0xa9, 0x21, 0xbb, 0x67, 0xc2, 0xca, 0x38, 0x25, 0x3e, 0xb6, 0x04, 0xcb, 0x37, 0xc4, 0xb1, 0xf4, 0x64, 0xa6, 0xa6, 0x86, 0xec, 0x9e, 0x09, 0x2b,
0xf6, 0x13, 0x8e, 0x31, 0xd0, 0xaf, 0xf4, 0xc4, 0x3d, 0x33, 0x22, 0xbd, 0x7d, 0x49, 0xd2, 0x43, 0xe3, 0x94, 0xd8, 0x4f, 0x38, 0xc6, 0x40, 0xbf, 0xd2, 0x15, 0xf7, 0x2c, 0x11, 0xe9, 0x9d, 0x4b,
0xeb, 0xdc, 0x83, 0x12, 0x3d, 0xa7, 0xa3, 0xc0, 0x5f, 0xaf, 0xf2, 0xb8, 0xb0, 0xac, 0xd2, 0xc5, 0x92, 0x1e, 0x5a, 0xe7, 0x2e, 0x94, 0xe8, 0x39, 0x1d, 0x05, 0xfe, 0x7a, 0x95, 0xc7, 0x85, 0x65,
0x36, 0xa3, 0xda, 0x72, 0xd2, 0xfa, 0x11, 0x5c, 0xde, 0x63, 0x79, 0xdd, 0x23, 0xb4, 0xbe, 0x9e, 0x95, 0x2e, 0xb6, 0x19, 0xd5, 0x91, 0x93, 0xf6, 0x8f, 0xe1, 0xf2, 0x2e, 0xcb, 0xeb, 0x1e, 0xa1,
0x21, 0x76, 0x3a, 0x7b, 0xd2, 0x2a, 0x85, 0xa0, 0xb3, 0x47, 0xea, 0x90, 0xdf, 0x69, 0xc9, 0x3d, 0xf5, 0xf5, 0x0c, 0xb1, 0xd3, 0xd9, 0x95, 0x56, 0x29, 0x04, 0x9d, 0x5d, 0x52, 0x87, 0xfc, 0x76,
0xe4, 0xdd, 0x96, 0xf5, 0x4b, 0x3c, 0x68, 0x5d, 0x2e, 0x93, 0x99, 0x0c, 0x70, 0xb5, 0x7c, 0x21, 0x4b, 0xee, 0x21, 0xdf, 0x6f, 0xd9, 0xbf, 0xc4, 0x83, 0xd6, 0xe5, 0x32, 0x99, 0x29, 0x01, 0xae,
0x5a, 0x1e, 0x53, 0x51, 0xea, 0x79, 0x63, 0x8f, 0x1b, 0xa4, 0x62, 0x8b, 0x81, 0x75, 0x57, 0xea, 0x96, 0x2f, 0x44, 0xcb, 0x63, 0x2a, 0x4a, 0x3d, 0x6f, 0xec, 0x71, 0x83, 0x54, 0x1c, 0x31, 0xb0,
0x80, 0x7b, 0x1e, 0xbf, 0x08, 0x9d, 0x4d, 0xa0, 0xe5, 0x42, 0x55, 0x77, 0x61, 0x35, 0xc6, 0x95, 0xef, 0x48, 0x1d, 0x70, 0xcf, 0xe3, 0x17, 0xa1, 0xb3, 0x09, 0xb4, 0x5c, 0xa8, 0xea, 0x0e, 0xac,
0x29, 0x38, 0x7d, 0x08, 0x57, 0x38, 0xd8, 0x2e, 0xa5, 0x93, 0xe6, 0xc0, 0x3d, 0x4f, 0x5d, 0x75, 0xc6, 0xb8, 0x32, 0x05, 0xa7, 0x7b, 0x70, 0x85, 0x83, 0xed, 0x50, 0x3a, 0x69, 0x0e, 0xfa, 0xe7,
0x02, 0x57, 0x4d, 0xc6, 0xff, 0xaf, 0x8d, 0xac, 0x33, 0x28, 0x3d, 0xe1, 0xf5, 0xa3, 0xa6, 0x4b, 0xa9, 0xab, 0x4e, 0xe0, 0x6a, 0x92, 0xf1, 0xff, 0x6b, 0x23, 0xfb, 0x0c, 0x4a, 0x4f, 0x78, 0xfd,
0x91, 0xf3, 0x62, 0x84, 0x19, 0x39, 0x43, 0x91, 0xdd, 0x57, 0x6c, 0xfe, 0xcd, 0xa3, 0x39, 0xa5, 0xa8, 0xe9, 0x52, 0xe4, 0xbc, 0x18, 0x61, 0x46, 0xee, 0x50, 0x64, 0xf7, 0x15, 0x87, 0x7f, 0xf3,
0xde, 0x91, 0xbd, 0x27, 0x1e, 0x8e, 0x8a, 0x1d, 0x8e, 0xc9, 0x2d, 0x56, 0xb9, 0xba, 0xe8, 0x1e, 0x68, 0x4e, 0xa9, 0x77, 0xe8, 0xec, 0x8a, 0x87, 0xa3, 0xe2, 0x84, 0x63, 0x72, 0x83, 0x55, 0xae,
0x7c, 0xb6, 0xc8, 0x67, 0x35, 0x0a, 0x56, 0x50, 0x2b, 0x62, 0xa5, 0x66, 0xbf, 0xaf, 0xbd, 0x1c, 0x7d, 0x74, 0x0f, 0x3e, 0x5b, 0xe4, 0xb3, 0x1a, 0x05, 0x2b, 0xa8, 0x15, 0xb1, 0x52, 0xb3, 0xd7,
0x21, 0x5e, 0x2e, 0x8e, 0x67, 0xbd, 0x84, 0xcb, 0x1a, 0x7f, 0x26, 0x33, 0x7c, 0x0c, 0x25, 0x51, 0xd3, 0x5e, 0x8e, 0x10, 0x2f, 0x17, 0xc7, 0xb3, 0x5f, 0xc2, 0x65, 0x8d, 0x3f, 0x93, 0x19, 0x3e,
0x24, 0xcb, 0xa0, 0xb5, 0x16, 0x97, 0x12, 0xcb, 0xd8, 0x92, 0xc7, 0xba, 0x07, 0xab, 0x92, 0x42, 0x86, 0x92, 0x28, 0x92, 0x65, 0xd0, 0x5a, 0x8b, 0x4b, 0x89, 0x65, 0x1c, 0xc9, 0x63, 0xdf, 0x85,
0x87, 0xe3, 0xa4, 0xb3, 0xe2, 0xf6, 0xb1, 0xf6, 0x60, 0x2d, 0xce, 0x96, 0xc9, 0x45, 0x9a, 0x6a, 0x55, 0x49, 0xa1, 0xc3, 0xb1, 0xe9, 0xac, 0xb8, 0x7d, 0xec, 0x5d, 0x58, 0x8b, 0xb3, 0x65, 0x72,
0xd1, 0xa3, 0x49, 0x5f, 0x8b, 0x81, 0xe6, 0xa1, 0xe8, 0x06, 0xcb, 0x1b, 0x06, 0x0b, 0x15, 0x52, 0x91, 0xa6, 0x5a, 0xf4, 0x70, 0xd2, 0xd3, 0x62, 0x60, 0xf2, 0x50, 0x74, 0x83, 0xe5, 0x13, 0x06,
0x10, 0x99, 0x14, 0x5a, 0x55, 0xe6, 0xdf, 0x73, 0xfd, 0xf0, 0xa5, 0x7b, 0x0d, 0x44, 0x27, 0x66, 0x0b, 0x15, 0x52, 0x10, 0x99, 0x14, 0x5a, 0x55, 0xe6, 0xdf, 0xed, 0xfb, 0xe1, 0x4b, 0xf7, 0x1a,
0x3a, 0x94, 0x0d, 0x28, 0x0b, 0x83, 0xab, 0xac, 0x2a, 0xf9, 0x54, 0x14, 0x13, 0x53, 0xa8, 0x45, 0x88, 0x4e, 0xcc, 0x74, 0x28, 0x0d, 0x28, 0x0b, 0x83, 0xab, 0xac, 0xca, 0x7c, 0x2a, 0x8a, 0x89,
0x9f, 0x7b, 0xce, 0xe9, 0x90, 0x86, 0x31, 0x87, 0xa5, 0x10, 0x3a, 0x31, 0xd3, 0x8e, 0xff, 0x84, 0x29, 0xd4, 0xa2, 0xcf, 0x3d, 0xf7, 0x74, 0x48, 0xc3, 0x98, 0xc3, 0x52, 0x08, 0x9d, 0x98, 0x69,
0xcf, 0x67, 0x73, 0xe0, 0x78, 0x43, 0x65, 0xfc, 0x87, 0x50, 0x12, 0xb9, 0x89, 0x4c, 0xe4, 0x3f, 0xc7, 0x7f, 0xc6, 0xe7, 0xb3, 0x39, 0x70, 0xbd, 0xa1, 0x32, 0xfe, 0x43, 0x28, 0x89, 0xdc, 0x44,
0x88, 0xc3, 0xe8, 0xbc, 0x62, 0xd0, 0x14, 0x99, 0x8c, 0x94, 0x62, 0x87, 0x25, 0x7b, 0x33, 0x2d, 0x26, 0xf2, 0x1f, 0xc6, 0x61, 0x74, 0x5e, 0x31, 0x68, 0x8a, 0x4c, 0x46, 0x4a, 0xb1, 0xc3, 0x92,
0xa3, 0x57, 0xd3, 0x22, 0xdf, 0x87, 0x45, 0x87, 0x89, 0xf0, 0xbb, 0x58, 0xdf, 0xfc, 0x4e, 0x02, 0xbd, 0x99, 0x56, 0xa2, 0x57, 0xd3, 0x22, 0x9f, 0xc0, 0xa2, 0xcb, 0x44, 0xf8, 0x5d, 0xac, 0x6f,
0x74, 0xe7, 0x62, 0x42, 0x6d, 0xc1, 0x65, 0x7d, 0x0a, 0x55, 0x6d, 0x05, 0x96, 0xf5, 0x3e, 0x6a, 0x7c, 0xcf, 0x00, 0xdd, 0xb9, 0x98, 0x50, 0x47, 0x70, 0xd9, 0x9f, 0x41, 0x55, 0x5b, 0x81, 0x65,
0x77, 0x30, 0x15, 0xae, 0xc1, 0x52, 0x73, 0xbb, 0xb3, 0x73, 0x2c, 0x92, 0xe1, 0x3a, 0x40, 0xab, 0xbd, 0x8f, 0xda, 0x1d, 0x4c, 0x85, 0x6b, 0xb0, 0xd4, 0xdc, 0xea, 0x6c, 0x1f, 0x89, 0x64, 0xb8,
0x1d, 0x8e, 0xf3, 0x98, 0x05, 0x09, 0x29, 0x79, 0xc3, 0x75, 0x7d, 0x72, 0x69, 0xfa, 0xe4, 0xdf, 0x0e, 0xd0, 0x6a, 0x87, 0xe3, 0x3c, 0x66, 0x41, 0x42, 0x4a, 0xde, 0x70, 0x5d, 0x9f, 0x5c, 0x9a,
0x4a, 0x9f, 0x57, 0xb0, 0x2c, 0xb7, 0x9f, 0xc9, 0x07, 0x3e, 0x41, 0x0b, 0x33, 0x18, 0xe5, 0x02, 0x3e, 0xf9, 0xb7, 0xd2, 0xe7, 0x15, 0x2c, 0xcb, 0xed, 0x67, 0xf2, 0x81, 0x4f, 0xd1, 0xc2, 0x0c,
0xd7, 0x12, 0x96, 0x55, 0xb7, 0x53, 0x30, 0x5a, 0x98, 0x3d, 0x1c, 0x06, 0x4e, 0x30, 0xf5, 0x95, 0x46, 0xb9, 0xc0, 0x35, 0xc3, 0xb2, 0xea, 0x76, 0x0a, 0x46, 0x1b, 0xb3, 0x87, 0x83, 0xc0, 0x0d,
0x0b, 0xfc, 0x31, 0x07, 0x75, 0x45, 0xc9, 0x5a, 0xcc, 0xab, 0x5a, 0x49, 0xc4, 0xbc, 0xb0, 0x52, 0xa6, 0xbe, 0x72, 0x81, 0x3f, 0xe5, 0xa0, 0xae, 0x28, 0x59, 0x8b, 0x79, 0x55, 0x2b, 0x89, 0x98,
0xba, 0x0a, 0xa5, 0x7e, 0xf7, 0xd0, 0x7d, 0xad, 0x9a, 0x1a, 0x72, 0xc4, 0xe8, 0x03, 0xb1, 0x8e, 0x17, 0x56, 0x4a, 0x57, 0xa1, 0xd4, 0x3b, 0x39, 0xe8, 0xbf, 0x56, 0x4d, 0x0d, 0x39, 0x62, 0xf4,
0xe8, 0xa8, 0xc9, 0x11, 0x4b, 0xbf, 0x59, 0x6f, 0x6d, 0x67, 0xd4, 0xa7, 0xaf, 0xf8, 0x4b, 0x5b, 0x81, 0x58, 0x47, 0x74, 0xd4, 0xe4, 0x88, 0xa5, 0xdf, 0xac, 0xb7, 0xb6, 0x3d, 0xea, 0xd1, 0x57,
0xb4, 0x23, 0x02, 0x4f, 0x97, 0x65, 0xe7, 0x8d, 0x17, 0x52, 0x7a, 0x27, 0x0e, 0x9d, 0xbc, 0x39, 0xfc, 0xa5, 0x2d, 0x3a, 0x11, 0x81, 0xa7, 0xcb, 0xb2, 0xf3, 0xc6, 0x0b, 0x29, 0xbd, 0x13, 0x87,
0x0d, 0xce, 0xda, 0x23, 0xd6, 0x74, 0x52, 0x3b, 0x5c, 0x03, 0xc2, 0x88, 0x2d, 0xd7, 0xd7, 0xa9, 0x4e, 0xde, 0x9c, 0x06, 0x67, 0xed, 0x11, 0x6b, 0x3a, 0xa9, 0x1d, 0xae, 0x01, 0x61, 0xc4, 0x56,
0x6d, 0x58, 0x65, 0x54, 0xf4, 0x7b, 0x4c, 0xa6, 0xa3, 0x88, 0xa1, 0xc2, 0x76, 0xce, 0x08, 0xdb, 0xdf, 0xd7, 0xa9, 0x6d, 0x58, 0x65, 0x54, 0xf4, 0x7b, 0x4c, 0xa6, 0xa3, 0x88, 0xa1, 0xc2, 0x76,
0x8e, 0xef, 0xbf, 0x1c, 0x7b, 0x7d, 0xb9, 0xb5, 0x70, 0x6c, 0xb5, 0x04, 0xf8, 0x91, 0x1f, 0x0b, 0x2e, 0x11, 0xb6, 0x5d, 0xdf, 0x7f, 0x39, 0xf6, 0x7a, 0x72, 0x6b, 0xe1, 0xd8, 0x6e, 0x09, 0xf0,
0xcc, 0xdf, 0x16, 0xe5, 0x7e, 0x84, 0xf2, 0x88, 0x06, 0x73, 0x50, 0xac, 0x8f, 0xe0, 0x8a, 0xe2, 0x43, 0x3f, 0x16, 0x98, 0xbf, 0x2b, 0xca, 0xfd, 0x08, 0xe5, 0x11, 0x0d, 0xe6, 0xa0, 0xd8, 0x1f,
0x94, 0xc5, 0xf4, 0x1c, 0xe6, 0x03, 0xb8, 0xa9, 0x98, 0xb7, 0xcf, 0x58, 0xa2, 0xf7, 0x54, 0x2e, 0xc1, 0x15, 0xc5, 0x29, 0x8b, 0xe9, 0x39, 0xcc, 0xfb, 0xf0, 0xbe, 0x62, 0xde, 0x3a, 0x63, 0x89,
0xf8, 0xbf, 0xea, 0xf9, 0x10, 0xd6, 0x42, 0x3d, 0xf5, 0xdc, 0x05, 0x71, 0xa6, 0xbe, 0xf4, 0x17, 0xde, 0x53, 0xb9, 0xe0, 0xff, 0xaa, 0xe7, 0x43, 0x58, 0x0b, 0xf5, 0xd4, 0x73, 0x17, 0xc4, 0x99,
0xc4, 0x61, 0xdf, 0x8c, 0xe6, 0x8d, 0x07, 0xe1, 0x03, 0xc8, 0xbe, 0xad, 0xcf, 0x23, 0xed, 0xe3, 0xfa, 0xd2, 0x5f, 0x10, 0x87, 0x7d, 0x33, 0x9a, 0x37, 0x1e, 0x84, 0x0f, 0x20, 0xfb, 0xb6, 0xb7,
0xf9, 0x43, 0x92, 0x22, 0x49, 0x00, 0xd2, 0x50, 0x36, 0x7e, 0xcf, 0x37, 0xb7, 0xce, 0x19, 0x37, 0xe0, 0x9a, 0x92, 0x97, 0x99, 0xc1, 0x78, 0x30, 0xd7, 0xf4, 0x26, 0x10, 0x69, 0x2c, 0x26, 0x3a,
0x29, 0xc7, 0xcc, 0x69, 0x98, 0xd2, 0xa4, 0x8c, 0x73, 0xc6, 0xa4, 0x33, 0xcc, 0xb6, 0xb0, 0x00, 0xdf, 0xe4, 0x3a, 0x67, 0xdc, 0xac, 0x1c, 0x33, 0xa7, 0x61, 0x4a, 0xb3, 0x32, 0xce, 0x19, 0xb3,
0x87, 0x35, 0x2c, 0x30, 0xb3, 0x81, 0x0f, 0xa0, 0x38, 0xa1, 0x32, 0x26, 0x54, 0x37, 0xc9, 0x86, 0xce, 0x30, 0x3b, 0xc2, 0x0a, 0x1c, 0x36, 0x61, 0x85, 0x99, 0x0d, 0x7c, 0x08, 0xc5, 0x09, 0x95,
0xe8, 0x60, 0x6f, 0x3c, 0x45, 0x9a, 0xeb, 0xb3, 0x9b, 0x61, 0xf3, 0x79, 0xeb, 0xa7, 0x91, 0x02, 0x71, 0xa1, 0xba, 0x41, 0x1a, 0xa2, 0x8b, 0xdd, 0x78, 0x8a, 0xb4, 0xbe, 0xcf, 0x6e, 0x87, 0xc3,
0x33, 0x56, 0x31, 0x15, 0x50, 0x69, 0xbd, 0x30, 0x0a, 0xfb, 0x64, 0x41, 0x5c, 0x77, 0xfa, 0x4c, 0xe7, 0xed, 0x47, 0x70, 0x53, 0x61, 0x0a, 0xcb, 0x68, 0x1c, 0xe9, 0xaa, 0xa8, 0x24, 0x5f, 0x98,
0x41, 0x7c, 0x57, 0xdc, 0x8a, 0xf0, 0xae, 0x64, 0x02, 0xeb, 0x0a, 0x5b, 0x45, 0x57, 0x2c, 0x53, 0x87, 0x7d, 0xb2, 0x90, 0xae, 0x5f, 0x81, 0x4c, 0x21, 0x7d, 0x47, 0xdc, 0x91, 0xf0, 0xe6, 0x64,
0x7c, 0xc1, 0x74, 0x34, 0x40, 0xdb, 0xa8, 0xe8, 0x22, 0x06, 0x4a, 0xe1, 0xf0, 0xfe, 0x65, 0x52, 0x02, 0x3b, 0x11, 0x56, 0x8b, 0x2e, 0x5c, 0xa6, 0x68, 0x83, 0xc9, 0x69, 0x80, 0x56, 0x52, 0xb1,
0xd8, 0x89, 0xc0, 0xb8, 0xcf, 0x64, 0xd5, 0x97, 0x1d, 0x98, 0x4a, 0x34, 0xc4, 0xc0, 0xda, 0x87, 0x46, 0x0c, 0x94, 0xc2, 0xe1, 0x6d, 0xcc, 0xa4, 0xb0, 0x1b, 0x81, 0x71, 0xef, 0xc9, 0xaa, 0x2f,
0xab, 0xe6, 0xfd, 0xcd, 0xa4, 0xf2, 0x31, 0xdc, 0x4a, 0xbb, 0xe2, 0x99, 0x70, 0x9f, 0x44, 0x37, 0x3b, 0x30, 0x95, 0x76, 0x88, 0x81, 0xbd, 0x07, 0x57, 0x93, 0xb7, 0x39, 0x93, 0xca, 0x47, 0x70,
0xf5, 0x1d, 0x54, 0x1b, 0xfa, 0xb6, 0xdf, 0x49, 0x49, 0x20, 0x8f, 0x3d, 0x8c, 0x03, 0x99, 0xc0, 0x23, 0xed, 0xc2, 0x67, 0xc2, 0x7d, 0x12, 0x45, 0x9d, 0x77, 0x50, 0x7b, 0xe0, 0x05, 0xb2, 0x4c,
0xfc, 0x08, 0x2c, 0xfb, 0xb1, 0x47, 0x97, 0xbe, 0x30, 0xf7, 0xd2, 0x4b, 0x8b, 0xe8, 0x51, 0xe7, 0x61, 0xe0, 0x5d, 0xf8, 0x6a, 0x18, 0x15, 0x32, 0x81, 0xf9, 0x11, 0x58, 0xf6, 0xa3, 0x8f, 0x42,
0x5d, 0x1c, 0x98, 0x16, 0x98, 0xde, 0xc5, 0x81, 0xe9, 0x31, 0x29, 0x0b, 0xde, 0xf7, 0x2c, 0xa8, 0x40, 0x61, 0x6e, 0x08, 0x90, 0xce, 0xa0, 0xc7, 0xa0, 0x77, 0x71, 0x68, 0x5a, 0x98, 0xca, 0x04,
0x84, 0x59, 0x90, 0xf6, 0x07, 0xa0, 0x2a, 0x94, 0xf7, 0x0f, 0x0e, 0x9f, 0x36, 0xb7, 0x31, 0xff, 0xf7, 0x15, 0xdc, 0x4a, 0x8f, 0x50, 0x59, 0x90, 0x7f, 0x60, 0x43, 0x25, 0xcc, 0x90, 0xb4, 0x3f,
0xda, 0xfc, 0x67, 0x1e, 0xf2, 0xbb, 0xc7, 0x64, 0x0b, 0x16, 0x45, 0xeb, 0x7a, 0x4e, 0x73, 0xbf, 0x0e, 0x55, 0xa1, 0xbc, 0xb7, 0x7f, 0xf0, 0xb4, 0xb9, 0x85, 0xb9, 0xd9, 0xc6, 0x3f, 0xf3, 0x90,
0x31, 0xaf, 0x09, 0x6e, 0x2d, 0x90, 0xcf, 0xa0, 0xc0, 0x9a, 0xd7, 0xa9, 0xdd, 0xfd, 0x46, 0x7a, 0xdf, 0x39, 0x22, 0x9b, 0xb0, 0x28, 0xda, 0xda, 0x73, 0x1a, 0xff, 0xd6, 0xbc, 0x06, 0xb9, 0xbd,
0x03, 0x1c, 0xa5, 0x3b, 0x50, 0xd5, 0x3a, 0xd5, 0xe4, 0x8d, 0xdd, 0xfd, 0xc6, 0x9b, 0xbb, 0xe0, 0x40, 0x3e, 0x87, 0x02, 0x6b, 0x6c, 0xa7, 0x76, 0xfe, 0xad, 0xf4, 0xe6, 0x38, 0x4a, 0x77, 0xa0,
0x42, 0xa7, 0xce, 0xab, 0x91, 0xa9, 0x53, 0xd4, 0x59, 0x35, 0x75, 0xd2, 0xfa, 0x98, 0x28, 0xbd, 0xaa, 0x75, 0xb1, 0xc9, 0x1b, 0x3b, 0xff, 0xd6, 0x9b, 0x3b, 0xe4, 0x42, 0xa7, 0xce, 0xab, 0x51,
0x2f, 0x3b, 0xe4, 0xbd, 0x80, 0xbc, 0x97, 0xd0, 0x70, 0xd5, 0x3b, 0x8a, 0x8d, 0xdb, 0xe9, 0x0c, 0x52, 0xa7, 0xa8, 0xeb, 0x9a, 0xd4, 0x49, 0xeb, 0x71, 0xa2, 0xf4, 0x9e, 0xec, 0x9e, 0x77, 0x03,
0x0a, 0x6f, 0xf3, 0x00, 0x16, 0x79, 0xb7, 0x85, 0x7c, 0xa1, 0x3e, 0x1a, 0x09, 0xbd, 0xa8, 0x14, 0x72, 0xd3, 0xd0, 0x8c, 0xd5, 0xbb, 0x8d, 0xd6, 0xad, 0x74, 0x06, 0x85, 0xb7, 0xb1, 0x0f, 0x8b,
0x73, 0xc7, 0xfa, 0x34, 0xd6, 0xc2, 0xfd, 0xdc, 0x0f, 0x72, 0x9b, 0xdf, 0xe4, 0x61, 0x91, 0x57, 0xbc, 0x13, 0x43, 0xbe, 0x50, 0x1f, 0x96, 0xa1, 0x4f, 0x95, 0x62, 0xee, 0x58, 0x0f, 0xc7, 0x5e,
0xdf, 0xe4, 0x4b, 0x80, 0xa8, 0x4d, 0x61, 0x6a, 0x3b, 0xd3, 0xf8, 0x30, 0xb5, 0x9d, 0xed, 0x70, 0xb8, 0x9f, 0xfb, 0x61, 0x6e, 0xe3, 0xdb, 0x3c, 0x2c, 0xf2, 0xca, 0x9c, 0x7c, 0x09, 0x10, 0xb5,
0x88, 0x13, 0xd1, 0xfa, 0x09, 0x24, 0x49, 0x24, 0xf6, 0x74, 0x9a, 0x27, 0x92, 0xd0, 0x8c, 0x40, 0x30, 0x92, 0xda, 0xce, 0x34, 0x45, 0x92, 0xda, 0xce, 0x76, 0x3f, 0xc4, 0x89, 0x68, 0xbd, 0x06,
0x54, 0x07, 0xea, 0xf1, 0x7e, 0x01, 0xb9, 0x93, 0x20, 0x66, 0xb6, 0x1d, 0x1a, 0x77, 0xe7, 0x33, 0x62, 0x12, 0x89, 0x35, 0x2b, 0x92, 0x27, 0x62, 0x68, 0x54, 0x20, 0xaa, 0x0b, 0xf5, 0x78, 0x2f,
0xc5, 0xac, 0xf2, 0x97, 0x3c, 0x9e, 0x9b, 0xf8, 0xfb, 0x33, 0x1e, 0x61, 0x25, 0x2c, 0xc9, 0xc9, 0x81, 0xdc, 0x36, 0x88, 0x25, 0x5b, 0x12, 0xd6, 0x9d, 0xf9, 0x4c, 0x31, 0xab, 0xfc, 0x35, 0x8f,
0xad, 0xa4, 0x72, 0x2d, 0xca, 0x69, 0x1a, 0xef, 0xa5, 0xce, 0x87, 0xea, 0x3f, 0x83, 0x9a, 0x5e, 0xe7, 0x26, 0xfe, 0x36, 0x8d, 0x47, 0x58, 0x09, 0xcb, 0x75, 0x72, 0xc3, 0x54, 0xca, 0x45, 0xb9,
0x42, 0x93, 0xf7, 0x13, 0x2b, 0x40, 0xbd, 0x0a, 0x6f, 0x58, 0xf3, 0x58, 0x66, 0x81, 0x45, 0x29, 0x8e, 0x75, 0x33, 0x75, 0x3e, 0x54, 0xff, 0x19, 0xd4, 0xf4, 0xf2, 0x9a, 0x7c, 0x60, 0xac, 0x0e,
0x9c, 0x0c, 0x1c, 0xab, 0xb4, 0x93, 0x81, 0xe3, 0x95, 0x34, 0x02, 0xa3, 0x67, 0x44, 0x05, 0x30, 0xf5, 0x0a, 0xdd, 0xb2, 0xe7, 0xb1, 0xcc, 0x02, 0x8b, 0x32, 0xd9, 0x0c, 0x1c, 0xab, 0xc2, 0xcd,
0x49, 0xdc, 0xa2, 0x56, 0x2f, 0x9b, 0x9e, 0x31, 0x5b, 0x3b, 0xa3, 0x1f, 0xff, 0x27, 0x0f, 0xd5, 0xc0, 0xf1, 0x2a, 0x1b, 0x81, 0xd1, 0x33, 0xa2, 0xe2, 0x98, 0x18, 0xb7, 0xa8, 0xd5, 0xd2, 0x49,
0x27, 0x8e, 0x3b, 0x0a, 0xe8, 0x88, 0x35, 0xec, 0x58, 0xf4, 0xe0, 0x81, 0xc6, 0x74, 0x67, 0xbd, 0xcf, 0x98, 0xad, 0xab, 0xd1, 0x8f, 0xff, 0x93, 0x87, 0xea, 0x13, 0xb7, 0x3f, 0x0a, 0xe8, 0x88,
0xdc, 0x34, 0xdd, 0x39, 0x56, 0x8b, 0xa1, 0x9a, 0x6d, 0x28, 0x89, 0x92, 0x88, 0x18, 0x8c, 0xb1, 0x35, 0xf3, 0x58, 0xf4, 0xe0, 0x81, 0x26, 0xe9, 0xce, 0x7a, 0x29, 0x9a, 0x74, 0xe7, 0x58, 0x9d,
0xd2, 0xa9, 0x71, 0x23, 0x79, 0x52, 0xdf, 0x6d, 0x54, 0x5d, 0x9b, 0xbb, 0x9d, 0x29, 0xc6, 0x1b, 0x86, 0x6a, 0xb6, 0xa1, 0x24, 0xca, 0x25, 0x92, 0x60, 0x8c, 0x95, 0x55, 0xd6, 0x7b, 0xe6, 0x49,
0xb7, 0xd3, 0x19, 0x42, 0xc8, 0xcf, 0xa1, 0xc8, 0x1a, 0xf3, 0xc4, 0x08, 0x15, 0x5a, 0xef, 0xbe, 0x7d, 0xb7, 0x51, 0xe5, 0x9d, 0xdc, 0xed, 0x4c, 0xa1, 0x6e, 0xdd, 0x4a, 0x67, 0x08, 0x21, 0x7f,
0xd1, 0x48, 0x9a, 0x0a, 0x01, 0x9e, 0xc0, 0x92, 0xea, 0xb5, 0x93, 0x9b, 0x86, 0xfe, 0xf1, 0xbe, 0x06, 0x45, 0xd6, 0xb4, 0x27, 0x89, 0x50, 0xa1, 0xf5, 0xf5, 0x2d, 0xcb, 0x34, 0x15, 0x02, 0x3c,
0x7c, 0xe3, 0x56, 0xda, 0xb4, 0x02, 0x43, 0xf7, 0xfe, 0x6b, 0x05, 0x8a, 0xec, 0x9d, 0x60, 0x7b, 0x81, 0x25, 0xd5, 0x87, 0x27, 0xef, 0x27, 0xf4, 0x8f, 0xf7, 0xec, 0xad, 0x1b, 0x69, 0xd3, 0x0a,
0x8d, 0x92, 0x50, 0x73, 0xaf, 0x33, 0x35, 0x99, 0xb9, 0xd7, 0xd9, 0xfc, 0x55, 0xdc, 0x79, 0x2d, 0x0c, 0xdd, 0xfb, 0xd7, 0x00, 0x45, 0xf6, 0x62, 0xb0, 0xbd, 0x46, 0x29, 0x69, 0x72, 0xaf, 0x33,
0x17, 0x25, 0x09, 0x22, 0xf1, 0x92, 0xce, 0xbc, 0xf3, 0x09, 0x89, 0xac, 0xf0, 0x6d, 0x3d, 0x29, 0xf5, 0x5a, 0x72, 0xaf, 0xb3, 0xd9, 0xac, 0xb8, 0xf3, 0x5a, 0x66, 0x4a, 0x0c, 0x22, 0xf1, 0x72,
0x25, 0x09, 0x42, 0x46, 0x4d, 0x68, 0xfa, 0x76, 0x52, 0x4e, 0x8b, 0xc0, 0x4f, 0xa1, 0x2c, 0xb3, 0x2f, 0x79, 0xe7, 0x0d, 0x69, 0xad, 0xf0, 0x6d, 0x3d, 0x45, 0x25, 0x06, 0xa1, 0x44, 0xbd, 0x98,
0xd0, 0x24, 0x55, 0xe3, 0x05, 0x62, 0x92, 0xaa, 0x46, 0x0a, 0x1b, 0x21, 0x62, 0x4e, 0x92, 0x86, 0xf4, 0x6d, 0x53, 0x86, 0x8b, 0xc0, 0x4f, 0xa1, 0x2c, 0x73, 0x52, 0x93, 0xaa, 0xf1, 0xe2, 0xd1,
0x18, 0x55, 0x36, 0x69, 0x88, 0x5a, 0x42, 0x83, 0x88, 0x5f, 0x01, 0x44, 0x99, 0xa7, 0x19, 0xec, 0xa4, 0x6a, 0x22, 0xa1, 0x8d, 0x10, 0x31, 0x3b, 0x49, 0x43, 0x8c, 0x2a, 0x9e, 0x34, 0x44, 0x2d,
0x12, 0xeb, 0x4a, 0x33, 0xd8, 0x25, 0x27, 0xaf, 0x08, 0xfd, 0x35, 0x90, 0xd9, 0x24, 0x94, 0x7c, 0xb5, 0x41, 0xc4, 0xaf, 0x01, 0xa2, 0x3c, 0x34, 0x19, 0xec, 0x8c, 0x35, 0x67, 0x32, 0xd8, 0x99,
0x94, 0x2c, 0x9d, 0x58, 0x8d, 0x36, 0x3e, 0x7e, 0x3b, 0xe6, 0x70, 0xc9, 0x63, 0xa8, 0x84, 0xf9, 0x53, 0x59, 0x84, 0xfe, 0x06, 0xc8, 0x6c, 0x4a, 0x4a, 0x3e, 0x32, 0x4b, 0x1b, 0x2b, 0x55, 0xeb,
0x29, 0xb1, 0x52, 0xf6, 0xaf, 0xbf, 0x34, 0x77, 0xe6, 0xf2, 0x98, 0x56, 0x92, 0x6f, 0x4d, 0x8a, 0xe3, 0xb7, 0x63, 0x0e, 0x97, 0x3c, 0x82, 0x4a, 0x98, 0xad, 0x12, 0x3b, 0x65, 0xff, 0xfa, 0x4b,
0x50, 0xfc, 0xb9, 0xb9, 0x3b, 0x9f, 0x49, 0x3f, 0x52, 0x99, 0xb3, 0x26, 0x1d, 0x69, 0xbc, 0xac, 0x73, 0x7b, 0x2e, 0x4f, 0x88, 0x4b, 0xa1, 0x1e, 0x4f, 0x5b, 0xc9, 0x3d, 0xb3, 0xe0, 0x4c, 0x7d,
0x4d, 0x3a, 0x52, 0x23, 0xe1, 0x8d, 0x10, 0x53, 0x9c, 0x24, 0x5e, 0xfe, 0xa6, 0x21, 0xce, 0x38, 0x6b, 0xdd, 0x7f, 0x33, 0xa3, 0x7e, 0xbc, 0x32, 0x93, 0x35, 0x1d, 0x6f, 0xbc, 0xf4, 0x35, 0x1d,
0x49, 0x94, 0x95, 0x26, 0x6d, 0x7f, 0xa6, 0x52, 0x4e, 0xda, 0xfe, 0x6c, 0x62, 0x2b, 0x4e, 0x2c, 0x6f, 0x22, 0x0d, 0x8e, 0x10, 0x53, 0x1c, 0x26, 0x5e, 0x22, 0xa7, 0x21, 0xce, 0x38, 0x4c, 0x94,
0x4c, 0x50, 0x93, 0x4e, 0xcc, 0x2c, 0xab, 0x1b, 0x77, 0xe6, 0xf2, 0x98, 0x2a, 0xa7, 0x9f, 0xd8, 0xab, 0x9a, 0x1c, 0x66, 0xa6, 0x9a, 0x36, 0x39, 0xcc, 0x6c, 0xba, 0x2b, 0x4e, 0x2f, 0x4c, 0x5b,
0x4c, 0x6d, 0x9d, 0xa6, 0xb2, 0x79, 0x62, 0x5b, 0xb5, 0x3f, 0xfc, 0xfd, 0x56, 0xee, 0xcf, 0xf8, 0x4d, 0xa7, 0x97, 0x2c, 0xbd, 0xad, 0xdb, 0x73, 0x79, 0x42, 0xdc, 0x97, 0xb0, 0x66, 0xca, 0x5f,
0xef, 0x6f, 0xf8, 0xaf, 0x5b, 0xe2, 0xff, 0xf3, 0xec, 0x87, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x27, 0x66, 0xf1, 0x94, 0x4a, 0xdc, 0x6a, 0xbc, 0x2d, 0xbb, 0x5a, 0x78, 0xb3, 0xf6, 0xc7,
0xb2, 0x78, 0xd4, 0xb9, 0xe2, 0x26, 0x00, 0x00, 0xbf, 0xdf, 0xc8, 0xfd, 0x05, 0xff, 0xfd, 0x0d, 0xff, 0x9d, 0x94, 0xf8, 0xff, 0x5f, 0xfb, 0xd1,
0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x04, 0xd6, 0x7a, 0x9e, 0x28, 0x27, 0x00, 0x00,
} }

View File

@ -118,8 +118,8 @@ service Auth {
// UserGrant grants a role to a specified user. // UserGrant grants a role to a specified user.
rpc UserGrant(AuthUserGrantRequest) returns (AuthUserGrantResponse) {} rpc UserGrant(AuthUserGrantRequest) returns (AuthUserGrantResponse) {}
// UserRevoke revokes a role of specified user. // UserRevokeRole revokes a role of specified user.
rpc UserRevoke(AuthUserRevokeRequest) returns (AuthUserRevokeResponse) {} rpc UserRevokeRole(AuthUserRevokeRoleRequest) returns (AuthUserRevokeRoleResponse) {}
// RoleAdd adds a new role. // RoleAdd adds a new role.
rpc RoleAdd(AuthRoleAddRequest) returns (AuthRoleAddResponse) {} rpc RoleAdd(AuthRoleAddRequest) returns (AuthRoleAddResponse) {}
@ -133,8 +133,8 @@ service Auth {
// RoleGrant grants a permission of a specified key or range to a specified role. // RoleGrant grants a permission of a specified key or range to a specified role.
rpc RoleGrant(AuthRoleGrantRequest) returns (AuthRoleGrantResponse) {} rpc RoleGrant(AuthRoleGrantRequest) returns (AuthRoleGrantResponse) {}
// RoleRevoke revokes a key or range permission of a specified role. // RoleRevokePermission revokes a key or range permission of a specified role.
rpc RoleRevoke(AuthRoleRevokeRequest) returns (AuthRoleRevokeResponse) {} rpc RoleRevokePermission(AuthRoleRevokePermissionRequest) returns (AuthRoleRevokePermissionResponse) {}
} }
message ResponseHeader { message ResponseHeader {
@ -594,7 +594,7 @@ message AuthUserGrantRequest {
string role = 2; string role = 2;
} }
message AuthUserRevokeRequest { message AuthUserRevokeRoleRequest {
string name = 1; string name = 1;
string role = 2; string role = 2;
} }
@ -619,7 +619,7 @@ message AuthRoleGrantRequest {
authpb.Permission perm = 2; authpb.Permission perm = 2;
} }
message AuthRoleRevokeRequest { message AuthRoleRevokePermissionRequest {
string role = 1; string role = 1;
string key = 2; string key = 2;
} }
@ -660,7 +660,7 @@ message AuthUserGrantResponse {
ResponseHeader header = 1; ResponseHeader header = 1;
} }
message AuthUserRevokeResponse { message AuthUserRevokeRoleResponse {
ResponseHeader header = 1; ResponseHeader header = 1;
} }
@ -682,6 +682,6 @@ message AuthRoleGrantResponse {
ResponseHeader header = 1; ResponseHeader header = 1;
} }
message AuthRoleRevokeResponse { message AuthRoleRevokePermissionResponse {
ResponseHeader header = 1; ResponseHeader header = 1;
} }

View File

@ -64,11 +64,11 @@ type Authenticator interface {
UserChangePassword(ctx context.Context, r *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error) UserChangePassword(ctx context.Context, r *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error)
UserGrant(ctx context.Context, r *pb.AuthUserGrantRequest) (*pb.AuthUserGrantResponse, error) UserGrant(ctx context.Context, r *pb.AuthUserGrantRequest) (*pb.AuthUserGrantResponse, error)
UserGet(ctx context.Context, r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) UserGet(ctx context.Context, r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error)
UserRevoke(ctx context.Context, r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) UserRevokeRole(ctx context.Context, r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error)
RoleAdd(ctx context.Context, r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) RoleAdd(ctx context.Context, r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error)
RoleGrant(ctx context.Context, r *pb.AuthRoleGrantRequest) (*pb.AuthRoleGrantResponse, error) RoleGrant(ctx context.Context, r *pb.AuthRoleGrantRequest) (*pb.AuthRoleGrantResponse, error)
RoleGet(ctx context.Context, r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) RoleGet(ctx context.Context, r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error)
RoleRevoke(ctx context.Context, r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) RoleRevokePermission(ctx context.Context, r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error)
RoleDelete(ctx context.Context, r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) RoleDelete(ctx context.Context, r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error)
} }
@ -327,15 +327,15 @@ func (s *EtcdServer) UserGet(ctx context.Context, r *pb.AuthUserGetRequest) (*pb
return result.resp.(*pb.AuthUserGetResponse), nil return result.resp.(*pb.AuthUserGetResponse), nil
} }
func (s *EtcdServer) UserRevoke(ctx context.Context, r *pb.AuthUserRevokeRequest) (*pb.AuthUserRevokeResponse, error) { func (s *EtcdServer) UserRevokeRole(ctx context.Context, r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) {
result, err := s.processInternalRaftRequest(ctx, pb.InternalRaftRequest{AuthUserRevoke: r}) result, err := s.processInternalRaftRequest(ctx, pb.InternalRaftRequest{AuthUserRevokeRole: r})
if err != nil { if err != nil {
return nil, err return nil, err
} }
if result.err != nil { if result.err != nil {
return nil, result.err return nil, result.err
} }
return result.resp.(*pb.AuthUserRevokeResponse), nil return result.resp.(*pb.AuthUserRevokeRoleResponse), nil
} }
func (s *EtcdServer) RoleAdd(ctx context.Context, r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) { func (s *EtcdServer) RoleAdd(ctx context.Context, r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) {
@ -371,15 +371,15 @@ func (s *EtcdServer) RoleGet(ctx context.Context, r *pb.AuthRoleGetRequest) (*pb
return result.resp.(*pb.AuthRoleGetResponse), nil return result.resp.(*pb.AuthRoleGetResponse), nil
} }
func (s *EtcdServer) RoleRevoke(ctx context.Context, r *pb.AuthRoleRevokeRequest) (*pb.AuthRoleRevokeResponse, error) { func (s *EtcdServer) RoleRevokePermission(ctx context.Context, r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) {
result, err := s.processInternalRaftRequest(ctx, pb.InternalRaftRequest{AuthRoleRevoke: r}) result, err := s.processInternalRaftRequest(ctx, pb.InternalRaftRequest{AuthRoleRevokePermission: r})
if err != nil { if err != nil {
return nil, err return nil, err
} }
if result.err != nil { if result.err != nil {
return nil, result.err return nil, result.err
} }
return result.resp.(*pb.AuthRoleRevokeResponse), nil return result.resp.(*pb.AuthRoleRevokePermissionResponse), nil
} }
func (s *EtcdServer) RoleDelete(ctx context.Context, r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) { func (s *EtcdServer) RoleDelete(ctx context.Context, r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) {