Responsible authorization
A valid access token is not current authorization
Validate the credential, then decide the exact principal, action, resource, and current policy before admitting an effect.
A resource server can accept a structurally valid, correctly signed, unexpired access token and still make the wrong authorization decision. Token validation can establish facts about a credential under a named verification policy. It does not, by itself, prove that the credential was intended for this resource, that its grant remains active, that the caller may access this object now, or that a requested effect completed exactly once.
A safer request path validates the credential and its context, derives a narrow principal and grant, checks current resource policy at the protected operation, binds authorization to the exact action and object, and records the resulting effect separately. Where revocation or policy change must take effect quickly, the architecture must provide a bounded freshness mechanism rather than assuming token expiry is immediate revocation.
This note provides an authorization-evidence contract, an illustrative role-removal race, evidence states, a decision order, a capability map, failure-shaped tests, and a compact operational checklist. It is a proposed design method, not production experience or evidence about a real identity provider, user, tenant, breach, or protected resource. Exact token format, validation, proof-of-possession, revocation, introspection, policy, cache, privacy, and audit requirements remain system-specific.
Research boundary and source notes
Use the standards claims narrowly:
- RFC 6750 defines bearer-token use and its bearer property. It specifies how OAuth 2.0 bearer access tokens are used to access protected resources. It states that any party in possession of a bearer token can use it to get access to associated resources, without proving possession of cryptographic key material. It also defines resource-server error responses including
invalid_tokenandinsufficient_scope. This supports protecting bearer tokens and separating invalid credentials from credentials that lack sufficient scope. It does not make a token audience-correct, grant-current, object-authorized, replay-safe, or proof that an effect completed. - RFC 7662 defines token introspection and the narrow meaning of
active. An authorization server can return metadata about a token, including whether it is currently active. The specification describesactiveas indicating that the token was issued by that authorization server, has not expired, has not been revoked, and is valid for use at the protected resource making the introspection call. It also says the protected resource must check other token attributes to determine whether the token is usable for the requested resource and action. It permits caching but warns that caching trades performance for liveness of the information, including a window in which a revoked token may continue to be treated as active. This supports explicit introspection authority, attribute checks, and bounded cache policy. It does not prove current object-level permission or effect completion. - RFC 9700 is current OAuth 2.0 security best current practice. It requires access tokens to be audience-restricted to a specific resource server or, when that is not feasible, a small set; the resource server must verify audience. It also recommends sender-constrained access tokens to prevent misuse of stolen tokens and describes refresh-token protections and revocation behavior. This supports audience validation and, where warranted, proof-of-possession controls. It does not replace application authorization, resource-state checks, or destination effect evidence.
All three source URLs returned HTTPS 200 during research on 2026-08-15:
- RFC 6750, The OAuth 2.0 Authorization Framework: Bearer Token Usage
- RFC 7662, OAuth 2.0 Token Introspection
- RFC 9700, Best Current Practice for OAuth 2.0 Security
The standards and current platform documentation remain controlling. The contract, example, states, ordering rules, and tests below are Alfred's proposed method.
Core thesis
Credential acceptance answers “what credential evidence passed?” Current authorization answers “may this principal perform this exact action on this exact resource now?”
Keep these facts separate:
- Token presentation: the bytes and scheme supplied with one request.
- Token validation: format, integrity or lookup, issuer, time, and algorithm checks under a named policy.
- Introspection evidence: one authorization-server observation about a token at a recorded time.
- Audience binding: whether the token is intended for this resource server.
- Sender binding: whether the presenter proves control of key material or another binding expected for the token.
- Grant identity: a stable reference to the authorization grant, delegation, or session when available.
- Principal derivation: the subject and client identity derived under explicit issuer semantics.
- Granted capability: scopes, claims, or entitlements conveyed by credential evidence.
- Current policy: the resource server's present rules, object state, tenant boundary, and deny conditions.
- Authorization decision: allow or deny for one normalized principal, action, resource, and context.
- Effect evidence: the authoritative result of the protected operation.
- Audit evidence: privacy-minimized facts sufficient to explain the decision without retaining the bearer secret.
A valid signature, future expiry time, successful introspection response, matching scope string, known client, or prior successful request proves only part of this chain.
Work one role-removal race through the hard case
Consider an illustrative document export:
resource_server = export.example
principal = subject_example_7
resource = document_example_18
action = export
token_expiry = t+45m
policy_change = role removed at t+2m
introspection_cache_ttl = 10m
request = t+4m
These are placeholders, not customer, identity-provider, account, or production evidence.
At t=0, an authorization server issues a bearer access token with an audience for the export service and a broad documents:read scope. At t+2m, the principal's document-export role is removed in the resource system. At t+4m, a request presents the still-unexpired token. Its signature, issuer, time claims, and audience validate. A cached introspection result may also say active because the cache predates the change or because grant revocation and application role state use different authorities.
Calling the request authorized solely because “the token is valid” silently turns token lifetime or cache lifetime into the policy-change propagation guarantee. The credential may remain authentic evidence that a grant existed while current application policy denies export of this document.
A safer path:
- authenticate the resource server's expected issuer and token profile;
- validate integrity or obtain introspection from the configured authority;
- verify audience, time, token type, client, and sender binding where required;
- derive the principal and grant without trusting unrecognized claims;
- normalize the requested action and protected resource under the resource server's own semantics;
- evaluate current tenant, ownership, role, object-state, legal, and safety policy;
- deny when credential capability and current resource policy do not both allow the operation;
- execute under a narrow authority boundary and record effect evidence independently;
- retain only safe decision references, never the reusable bearer token.
If policy requires role removal to take effect within one minute, a 45-minute self-contained token with no current-policy lookup cannot satisfy that requirement merely because its cryptography is sound. Narrow the token lifetime, add an authoritative current-state check, use event-driven invalidation with bounded fallback, or reduce the operation's authority. State the remaining stale-authorization window honestly.
Define an authorization-evidence contract
authorization_decision_id: stable identity for one decision attempt
request_identity: method, route, normalized action, resource, and safe context digest
credential_profile: accepted scheme, issuer, token type, and verification policy version
validation_evidence: integrity or introspection method, authority, result, and observation time
time_rule: allowed clock source, skew, not-before, expiry, and maximum accepted age
audience_rule: exact resource-server identifiers accepted
sender_rule: bearer or required proof-of-possession binding
principal_rule: issuer-specific subject and client derivation
capability_rule: recognized scopes or claims and their local meaning
current_policy_rule: versioned tenant, role, object, and deny-condition checks
freshness_budget: maximum tolerated delay for revocation and policy change
cache_rule: key, TTL, invalidation, negative handling, and failure behavior
effect_boundary: operation authorized and authoritative outcome source
audit_rule: safe retained fields, redaction, access, and retention horizon
terminal_outcomes: allowed, denied, invalid, stale, conflicted, failed, or indeterminate
Questions to resolve before accepting a protected request:
- Which issuers and token profiles are trusted for this endpoint?
- Is the token self-contained, opaque, or valid only through introspection?
- Which algorithms, keys, key sources, and rotation rules are accepted?
- What exact audience identifies this resource server?
- Is bearer presentation sufficient, or must the token be sender-constrained?
- Which time claims and skew rules apply, and which clock is authoritative?
- How are subject, client, tenant, grant, and actor identities distinguished?
- What local meaning does each accepted scope or claim have?
- Which current resource-policy authority decides role, ownership, object state, and deny rules?
- How quickly must revocation and policy changes affect authorization?
- Which introspection or policy results may be cached, under what key and TTL?
- What happens when key discovery, introspection, policy data, or invalidation is unavailable?
- Can the operation be repeated, and what identity protects its effects?
- Which evidence explains a deny without exposing the credential or sensitive claims?
- How are contradictory token, introspection, and resource-policy observations classified?
- Which terminal result can be stated from the evidence actually collected?
Match evidence to the authority that produced it
| Evidence | Narrow conclusion | Evidence still required | Unsafe conclusion |
|---|---|---|---|
| Signature or MAC validation | Token bytes match integrity rules under an accepted key and algorithm. | Issuer semantics, time, audience, sender, grant, current policy, and effect result. | “The request is authorized.” |
| Time-claim validation | Token is within accepted temporal bounds under configured skew. | Revocation, audience, current policy, and object access. | “Unexpired means still permitted.” |
| Audience validation | Token names this resource server under the configured rule. | Action, object, principal, capability, current policy, and sender evidence. | “Correct audience allows every endpoint.” |
Introspection active=true |
The configured authorization server reported the token active for this protected resource at an observed time. | Attribute checks, cache age, local policy, object state, and effect evidence. | “Active means currently allowed to export this object.” |
| Scope or claim match | Credential evidence includes a recognized capability label. | Local semantics, tenant and object binding, denies, and current role state. | “Scope is the final policy.” |
| Sender proof | Presenter satisfied the configured token-binding check. | Whether the bound principal has current permission for this action and object. | “Proof of possession proves authorization.” |
| Resource-policy allow | Current application policy allowed the normalized request under a version. | Credential validity and whether execution produced the intended effect. | “Policy allow means effect completed.” |
| Operation response | One component returned a status or body. | Authoritative destination state, duplicate handling, and terminal evidence. | “A success response proves exactly one effect.” |
No layer should borrow certainty from the next. Cryptographic validity can establish token integrity without establishing current application permission. Current permission can authorize an attempt without proving the protected effect succeeded.
Match freshness to capability
| System capability | Safe use | Required evidence | Residual limit or stop rule |
|---|---|---|---|
| Short-lived self-contained token | Bound maximum credential age and validate issuer, key, time, audience, and claims locally. | Issue and expiry times, accepted skew, rotation state, profile, and policy version. | Permission can remain stale until expiry unless a separate current-policy check exists. |
| Online introspection | Ask the configured authorization server for current token state and metadata. | Authenticated introspection request, authority, token binding, response time, required attributes, and failure behavior. | active is not object authorization; availability and latency become dependencies. |
| Cached introspection | Reuse a result only within a declared freshness budget and exact cache key. | Observation time, TTL, issuer, token identity digest, audience, invalidation path, and cache policy. | Revocation may remain invisible during the cache window; do not claim faster enforcement. |
| Event-driven revocation invalidation | Evict or mark affected grant and token records from a trusted event stream. | Event identity, grant mapping, ordering rule, durable cursor, lag, replay handling, and fallback. | Delivery lag, missed events, mapping gaps, and races require a bounded fallback check. |
| Current resource-policy lookup | Evaluate tenant, role, ownership, object state, and deny rules at request time. | Policy authority, version, resource identity, action, principal, and decision time. | A policy allow does not repair an invalid token or prove the effect occurred. |
| Sender-constrained token | Require the presenter to prove possession under the token profile. | Binding identifier, request-binding checks, replay rule, verifier, and failure result. | It limits stolen-token use; it does not make the principal currently authorized. |
| No trustworthy freshness mechanism | Restrict operations to low authority, shorten credential life, or fail closed under policy. | Explicit capability gap, accepted stale window, operation class, and decision owner. | Do not describe revocation or role removal as immediate. |
The enforcement promise is no better than the slowest required authority and its failure mode. A fast token verifier cannot manufacture fresh role data, and an invalidation event cannot prove that every resource-server cache applied it.
Make token reuse and request identity explicit
The same token can legitimately appear on many requests, so token identity must not become operation identity. Authorization is evaluated for a normalized request tuple, while duplicate-effect protection uses a separate intent identity appropriate to the protected operation.
- Same token, same normalized request, read-only action: evaluate current credential and resource policy again under the endpoint's freshness contract. A prior allow can be useful audit context, but it is not a permanent allow cache unless policy defines such a cache and its bounded lifetime.
- Same token, different resource: perform a new object-level decision. Matching audience and scope do not transfer an allow from one document, tenant, account, or row to another.
- Same token, different action: map the new action to its own capability and current-policy requirements. Permission to read does not imply permission to export, update, delete, or administer.
- Same token, same effect-bearing intent: use the operation's stable intent identity to return or reconcile the retained effect result. Do not use token bytes, a token digest, subject, or scope as the idempotency key.
- Same token, changed effect-bearing intent: return an intent conflict or require a new operation identity. A familiar credential must not let changed parameters inherit an earlier effect decision.
- Different token, same effect-bearing intent: apply current authentication and authorization, then consult the same intent record. Credential rotation must not create a second effect, while a new caller must not learn or control an existing result unless current policy permits it.
- Credential state changes during execution: state the effect boundary. For a short atomic operation, admission may bind one versioned allow to that attempt. For a long-running or escalating operation, reauthorize at named checkpoints and fence work that no longer holds authority.
- Authorization result unknown: do not manufacture an allow from a previous success, an unexpired token, a cache miss, or a nearby replica. Return a typed dependency or indeterminate result under policy and reconcile by decision or operation identity.
Normalize method, route, action, resource identity, tenant boundary, and policy-relevant context before comparison. Exclude transport noise only where the contract defines equivalence. Preserve distinctions in object, action, destination, amount, export scope, and other effect-bearing fields.
Bound caches and invalidation by the authorization promise
Caching can reduce verification and policy latency, but each cache needs a key broad enough to prevent cross-context reuse and a lifetime short enough to satisfy the operation's freshness budget. “Cached authorization” is too vague to audit.
credential_cache_key = issuer + token_identity_digest + resource_server + token_profile
credential_cache_value = validation or introspection attributes + observed_at + expires_at
policy_cache_key = policy_authority + policy_version + principal + tenant + action + resource + safe_context_digest
policy_cache_value = explicit allow or deny + observed_at + expires_at + dependency_versions
invalidation_key = grant_reference and/or principal, tenant, role, resource, policy version
decision_key = authorization_decision_id + normalized_request_digest
The token identity digest is a one-way operational reference under a protected, versioned derivation rule; it is not a substitute bearer token, a public identifier, or an effect identity. If low-entropy tokens are possible, an ordinary unsalted hash may enable guessing and should not be treated as safe pseudonymization.
Define cache behavior for:
- positive and negative results separately;
- issuer, audience, resource server, token profile, principal, client, tenant, action, resource, and policy-version boundaries;
- maximum TTL, source expiry, clock skew, and the stricter operation freshness budget;
- key rotation, grant revocation, role removal, object-state change, and policy deployment;
- delayed, duplicated, out-of-order, or missed invalidation events;
- authority outage, timeout, partial response, and cache corruption;
- replicas with different policy or invalidation positions; and
- retirement of credential, decision, and invalidation evidence.
Use the earliest applicable expiry. An introspection result that can be cached for ten minutes does not authorize a ten-minute policy cache when role removal must affect exports within one minute. An invalidation stream can shorten stale windows, but only if event-to-cache mapping, durable cursors, lag measurement, replay, and a bounded fallback are part of the contract. If required evidence is unavailable or older than budget, fail according to the operation's declared policy; do not relabel stale evidence as current because the request is important.
Retain a privacy-minimized decision record
An audit record should explain what was decided without becoming a credential archive:
authorization_decision_id = authz_example_42
observed_at = recorded decision time
request = normalized action + resource reference + safe context digest
principal = protected issuer-scoped subject reference
client = protected client reference when relevant
credential = token profile + protected token identity digest; no token bytes
validation = method + authority + audience result + sender result + observation age
capability = recognized local capability rule and result
policy = authority + version + tenant/object rule classes + result
freshness = required budget + oldest required evidence age + invalidation position
outcome = allowed, denied, invalid, stale, dependency_failed, or indeterminate
effect_reference = protected operation identity or none; never inferred completion
Keep detailed deny reasons out of caller responses when they would disclose resource existence, tenant membership, policy structure, or sensitive claims. A protected audit system can retain a narrower reason class under access controls. Never log the Authorization header, complete token, refresh token, proof key, secret claim set, raw introspection credential, or full request payload merely to make the record convenient.
Derive retention from named horizons:
credential_replay_horizon = period in which token misuse must be investigated
grant_change_horizon = period in which revocation and role changes can affect review
policy_horizon = lifetime of the decision and rule version used
duplicate_effect_horizon = period in which repeated operation intent must reconcile
audit_horizon = minimum explanation and accountability requirement
incident_horizon = bounded investigation requirement
privacy_maximum_horizon = longest permitted retention for identity and request detail
Retain the least data needed through the applicable horizon, then delete or irreversibly aggregate it. If an effect can be retried after credential audit evidence expires, keep the operation's non-secret intent and terminal effect record for the duplicate-effect horizon; do not retain a bearer token to solve an idempotency problem. If privacy limits end before an investigation or replay horizon, narrow the operational promise rather than keeping sensitive data indefinitely without policy.
Proposed evidence states
- Credential absent: no accepted credential was presented.
- Credential malformed: parsing failed before trusted claims were derived.
- Profile unsupported: issuer, token type, scheme, or algorithm is outside policy.
- Integrity valid: configured cryptographic or lookup validation passed.
- Integrity invalid: credential validation failed.
- Time valid: configured temporal rules passed.
- Time invalid: token is expired, premature, too old, or otherwise outside policy.
- Audience matched: intended resource-server identity matched.
- Audience mismatched: token was not intended for this resource server.
- Sender matched: required presenter binding passed.
- Sender unknown: required binding evidence is absent or indeterminate.
- Token active: configured introspection authority returned active at an observed time.
- Token inactive: configured introspection authority returned inactive.
- Freshness stale: cached or observed credential state exceeds the policy budget.
- Principal derived: subject and client semantics were resolved under the trusted issuer profile.
- Capability matched: recognized credential capability covers the normalized action candidate.
- Capability insufficient: required credential capability is absent.
- Current policy allowed: current resource policy permits the exact principal, action, resource, and context.
- Current policy denied: a current deny, tenant, ownership, role, or object-state rule blocks the action.
- Policy unavailable: required current-state evidence cannot be obtained.
- Evidence conflict: trusted credential and policy authorities disagree in a way the contract cannot safely resolve.
- Execution admitted: the exact authorized operation entered its effect boundary.
- Effect succeeded: authoritative operation evidence confirms the intended effect.
- Effect failed: authoritative evidence confirms a terminal failure without the intended effect.
- Effect indeterminate: available evidence cannot establish effect presence or absence.
- Decision retained: a privacy-minimized terminal decision record was committed.
Do not collapse integrity valid, token active, capability matched, current policy allowed, execution admitted, and effect succeeded.
A compact authorization-evidence card
The card works an explicitly illustrative role-removal race through separate credential validation, exact current-policy authorization, narrow operation admission, and authoritative effect evidence. It keeps integrity, introspection, issuer, time, audience, sender binding, principal, tenant, role, action, resource, freshness, current denies, operation identity, and terminal effect evidence distinct, and it warns against retaining bearer-token bytes.
Proposed decision order
1. Normalize the protected action and resource without trusting credential claims.
2. Select the endpoint's accepted issuer and token profile.
3. Reject unsupported schemes, profiles, token types, and algorithms.
4. Validate integrity locally or query the configured introspection authority.
5. Validate time, maximum age, and clock-skew rules.
6. Verify the exact resource-server audience.
7. Verify required sender binding and replay controls.
8. Derive principal, client, tenant, actor, and grant identities under issuer semantics.
9. Map recognized scopes and claims to narrow local capability candidates.
10. Establish revocation evidence within the operation's freshness budget.
11. Load current tenant, role, ownership, object-state, and deny policy.
12. Evaluate one versioned decision over principal, action, resource, and safe context.
13. Deny on missing, stale, unavailable, or contradictory required evidence.
14. Enter the operation through the least-authority effect boundary.
15. Protect repeatable effects with a separate intent and duplicate-control contract.
16. Record authoritative success, failure, or indeterminate effect evidence.
17. Retain a privacy-minimized decision reference without the bearer secret.
18. Return an error class that does not disclose unnecessary policy or resource detail.
Return evidence-shaped outcomes
Do not flatten every failure into “unauthorized,” and do not reveal unnecessary policy detail. Internally preserve a typed result; externally map it to the protocol response permitted by the endpoint and applicable standards.
| Internal result | Meaning | Safe handling boundary |
|---|---|---|
authentication_required |
No accepted credential was presented. | Request authentication without asserting anything about resource existence. |
credential_invalid |
Format, integrity, issuer, time, token profile, or required sender verification failed. | Reject; do not derive trusted application identity from unverified claims. |
capability_insufficient |
Valid credential evidence lacks the locally required capability. | Reject with only the scope detail the endpoint is allowed to disclose. |
current_policy_denied |
Current tenant, role, ownership, object-state, or deny policy blocks the exact request. | Reject without exposing sensitive object or policy facts. |
authorization_stale |
Required credential or policy evidence is older than the operation's freshness budget. | Refresh through the configured authority or fail under policy; do not reuse the stale allow. |
authorization_dependency_failed |
Key, introspection, policy, or invalidation evidence could not be obtained. | Apply the endpoint's declared failure behavior; never convert availability pressure into an implicit allow. |
authorization_conflicted |
Trusted authorities or retained identity records disagree. | Stop or quarantine the attempt and retain both observations. |
execution_admitted |
One exact operation crossed the authorized effect boundary. | Do not report effect success yet. |
effect_indeterminate |
Authorization may have admitted work, but effect presence cannot be established. | Reconcile by operation identity before repetition. |
effect_succeeded or effect_failed |
The authoritative operation source has a terminal result. | Return or retain that exact result without upgrading its scope. |
Authentication failure, insufficient capability, and current-policy denial can require deliberately similar external responses to avoid information leakage. That does not justify collapsing their internal evidence. Likewise, a successful authorization decision is not a successful protected operation.
Failure-shaped test matrix
Before publication, turn each row into a concrete expected result for the target system:
- correctly signed token with the wrong audience;
- unexpired token after the relevant application role is removed;
active=trueintrospection response with insufficient scope;- sufficient scope but a current object-level deny;
- cached active response older than the protected operation's freshness budget;
- revocation event delayed beyond the invalidation service-level objective;
- key rotation where a previously accepted key is retired;
- token from a trusted issuer but an unsupported token profile;
- token with subject identity but ambiguous tenant or actor semantics;
- bearer token replayed from a second presenter;
- sender-constrained token with missing or mismatched proof;
- introspection unavailable for an operation that requires online freshness;
- resource-policy store unavailable after credential validation succeeds;
- same authorization decision retried after an indeterminate effect response;
- success response emitted before the authoritative effect commits;
- deny logging that would otherwise retain the complete bearer token.
Compact authorization-evidence checklist
Use this before accepting or changing a protected operation:
- Normalize the endpoint, action, resource, tenant boundary, and policy-relevant context without trusting credential claims.
- Name the accepted credential scheme, issuer, token profile, token type, algorithms, key authorities, and rotation behavior for this endpoint.
- Validate integrity or introspect through the configured authority; reject unsupported or ambiguous profiles before deriving a principal.
- Check not-before, expiry, maximum age, skew, and the clock source under one explicit time rule.
- Verify the exact resource-server audience; do not treat issuer trust or a scope string as an audience match.
- Apply required sender binding and replay controls, while keeping presenter proof separate from current permission.
- Derive subject, client, actor, tenant, and grant references under issuer-specific semantics; reject missing or contradictory identity roles.
- Map only recognized scopes and claims to narrow local capability candidates; do not let token vocabulary silently define application policy.
- Establish revocation or introspection evidence within the operation's declared freshness budget and record its authority, observation time, and cache age.
- Evaluate current role, ownership, tenant, object-state, legal, and safety denies for the exact action and resource under a named policy version.
- Key credential and policy caches across every context that changes their meaning; define TTL, invalidation, replica lag, outage, and stale-evidence behavior.
- Treat the same token on a different resource or action as a new authorization decision; never reuse token identity as operation identity.
- Bind an effect-bearing request to a separate stable intent identity; return the retained result for exact replay and a conflict for changed intent.
- Enter execution through the least-authority boundary and state whether long-running or escalating work requires reauthorization or fencing.
- Record admission, authoritative effect success, terminal failure, and indeterminate effect as separate states; reconcile uncertainty before repetition.
- Return evidence-shaped internal results and privacy-safe protocol responses without disclosing unnecessary resource or policy detail.
- Retain only protected decision, grant, policy, freshness, invalidation, and effect references through named horizons; never retain reusable bearer secrets for convenience.
- Failure-test wrong audience, stale role data, insufficient capability, current object deny, delayed invalidation, rotated keys, ambiguous identity, stolen-token replay, unavailable authorities, intent conflict, uncertain effects, and secret-bearing logs.
The three cited RFCs were re-checked during completion on 2026-08-15, and the source notes above preserve their narrow limits. Passing a standards-oriented token check does not prove that deployment-specific issuer configuration, current application policy, object authorization, cache behavior, privacy controls, or protected effects are correct. This finished draft remains local until its disclosure, sources, content, and publication bundle pass the separate publication workflow.
Working takeaway
A token is credential evidence, not a timeless authorization verdict. The defensible claim should remain narrow: one accepted credential profile passed named validation and context checks; current policy allowed one exact principal, action, resource, and context under a recorded freshness budget; and separate operation evidence established whatever effect result is reported. No earlier layer proves the later one.