Task<IAccessToken> INonCachingAccessTokenProvider.ProvisionAccessTokenAsync(
			ClaimSet claimSet,	
			IEnumerable<Scope> scopes
		) {
			var @this = this as INonCachingAccessTokenProvider;
			return @this.ProvisionAccessTokenAsync( claimSet.ToClaims(), scopes );
		}
		async Task<IAccessToken> IAccessTokenProvider.ProvisionAccessTokenAsync(
			ClaimSet claimSet,
			IEnumerable<Scope> scopes,
			ICache cache
    ) {
			var @this = this as IAccessTokenProvider;
			return await @this.ProvisionAccessTokenAsync( claimSet.ToClaims(), scopes, cache ).SafeAsync();
		}
        Task <IAccessToken> INonCachingAccessTokenProvider.ProvisionAccessTokenAsync(
            ClaimSet claimSet,
            IEnumerable <Scope> scopes
            )
        {
            var @this = this as INonCachingAccessTokenProvider;

            return(@this.ProvisionAccessTokenAsync(claimSet.ToClaims(), scopes));
        }
        async Task <IAccessToken> IAccessTokenProvider.ProvisionAccessTokenAsync(
            ClaimSet claimSet,
            IEnumerable <Scope> scopes,
            ICache cache
            )
        {
            var @this = this as IAccessTokenProvider;

            return(await @this.ProvisionAccessTokenAsync(claimSet.ToClaims(), scopes, cache).SafeAsync());
        }