SlideShare a Scribd company logo
1 of 8
OAuth 2.0 
Syed Ali Raza
Why traditional session & cookie method doesn’t 
work with API? 
Third party applications can not save password 
as a salted hash. 
Resource owner can not limit the time of access 
or what resources to access by clients 
Resource owners cannot revoke access to an 
individual third party 
Compromise of any third‐party application 
results in compromise of the end-user's data.
Oauth 2.0 
Designed to fix these issues. 
Finer control over resources 
Revoke access to individual apps 
Change password without revoking access to apps. 
Does not require resource owner to provide 
credentials directly to your app 
Provides a model where you can create a key to 
provide to your app to access a specific part of your 
app. 
You can revoke a key without revoking a master key
4 Roles 
Resource Owner 
Client Resource Server 
Authorization Server
OAuth 2 
(A) Give me the key of your car 
(B) It’s with key holder, I will give you a chit, 
show this to key holder and ask for key. You 
can’t open my private stuff box with this key 
(C) Give me car key. Here is the 
chit of approve from owner 
(D) Ok, This is accepted, here is the key 
(E) Give me car to repair, this is the key 
(F) Ok, have the car 
Car owner 
Key Holder 
Car park 
Mechanic
OAuth 2 
(A) Authorization Request 
(B) Authorization Grant 
(C) Authorization Grant 
(D) Access Token 
(E) Access Token 
(F) Protected Resource 
Resource owner 
Client Credentials 
Authorization Server 
Resource Server 
Implicit 
Client 
Resource Owner 
Password Credentials 
Authorization Code
OAuth 2.0 MetaModel
oAuth 2.0 infrastructure 
Internet 
Client 
Registration 
Endpoint 
Authorization 
Endpoint 
Token 
Endpoint 
Protected 
Resources 
(such as 
user media 
or address 
book) 
Client 
Registrations 
Users 
(Resource 
Owners) 
Tokens and 
Authorization 
Codes 
Client 
Registration 
Manager 
Authenticator 
Token 
Manager 
Resource 
Access 
Manager Resource 
Permissions 
and Scope 
Definitions 
oAuth 2.0 
Resource 
Filter 
HTTP 
proxy 
Resourc 
e Owner 
User 
Agent 
(browser) 
Client 
Authorization 
Server 
Resource 
Server

More Related Content

What's hot

1000 ways to die in mobile oauth
1000 ways to die in mobile oauth1000 ways to die in mobile oauth
1000 ways to die in mobile oauth
Priyanka Aash
 
Saadhvi Summit - oAuth Standards
Saadhvi Summit - oAuth StandardsSaadhvi Summit - oAuth Standards
Saadhvi Summit - oAuth Standards
Nirmal Kumar
 
OAuth - Alex Bilbie
OAuth - Alex BilbieOAuth - Alex Bilbie
OAuth - Alex Bilbie
Eduserv
 
OAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tk
OAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tkOAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tk
OAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tk
Nov Matake
 
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
UA Mobile
 

What's hot (20)

Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID Connect
 
OpenID Connect Explained
OpenID Connect ExplainedOpenID Connect Explained
OpenID Connect Explained
 
1000 ways to die in mobile oauth
1000 ways to die in mobile oauth1000 ways to die in mobile oauth
1000 ways to die in mobile oauth
 
OAuth 2.0
OAuth 2.0OAuth 2.0
OAuth 2.0
 
Stateless token-based authentication for pure front-end applications
Stateless token-based authentication for pure front-end applicationsStateless token-based authentication for pure front-end applications
Stateless token-based authentication for pure front-end applications
 
Spring4 security oauth2
Spring4 security oauth2Spring4 security oauth2
Spring4 security oauth2
 
Digg Third Party Authentication
Digg   Third Party AuthenticationDigg   Third Party Authentication
Digg Third Party Authentication
 
Oauth
OauthOauth
Oauth
 
OpenID Connect - An Emperor or Just New Cloths?
OpenID Connect - An Emperor or Just New Cloths?OpenID Connect - An Emperor or Just New Cloths?
OpenID Connect - An Emperor or Just New Cloths?
 
Protecting your APIs with OAuth 2.0
Protecting your APIs with OAuth 2.0Protecting your APIs with OAuth 2.0
Protecting your APIs with OAuth 2.0
 
Saadhvi Summit - oAuth Standards
Saadhvi Summit - oAuth StandardsSaadhvi Summit - oAuth Standards
Saadhvi Summit - oAuth Standards
 
OAuth - Alex Bilbie
OAuth - Alex BilbieOAuth - Alex Bilbie
OAuth - Alex Bilbie
 
Server to Server API Security
Server to Server API SecurityServer to Server API Security
Server to Server API Security
 
Secure your api from basics to beyond
Secure your api   from basics to beyondSecure your api   from basics to beyond
Secure your api from basics to beyond
 
Secure your api - from basics to beyond
Secure your api - from basics to beyondSecure your api - from basics to beyond
Secure your api - from basics to beyond
 
O auth with facebook and google using .net
O auth with facebook and google using .netO auth with facebook and google using .net
O auth with facebook and google using .net
 
OAuth OpenID Connect
OAuth OpenID ConnectOAuth OpenID Connect
OAuth OpenID Connect
 
OAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tk
OAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tkOAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tk
OAuth 2.0 & OpenID Connect @ OpenSource Conference 2011 Tokyo #osc11tk
 
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
 
Incorporating OAuth: How to integrate OAuth into your mobile app
Incorporating OAuth: How to integrate OAuth into your mobile appIncorporating OAuth: How to integrate OAuth into your mobile app
Incorporating OAuth: How to integrate OAuth into your mobile app
 

Viewers also liked (20)

Comunicazione d'impresa base - aggiornamento
Comunicazione d'impresa base - aggiornamentoComunicazione d'impresa base - aggiornamento
Comunicazione d'impresa base - aggiornamento
 
Tribal Fusion- Media Deck 2012
Tribal Fusion- Media Deck 2012Tribal Fusion- Media Deck 2012
Tribal Fusion- Media Deck 2012
 
琉球1
琉球1琉球1
琉球1
 
Electronics club
Electronics clubElectronics club
Electronics club
 
Vrije opdracht power point brugge
Vrije opdracht power point bruggeVrije opdracht power point brugge
Vrije opdracht power point brugge
 
Groepswerk ict 2
Groepswerk ict 2Groepswerk ict 2
Groepswerk ict 2
 
De 5 mooiste jeugdherbergen
De 5 mooiste jeugdherbergenDe 5 mooiste jeugdherbergen
De 5 mooiste jeugdherbergen
 
Chapter 3 phan tich moi truong marketing
Chapter 3   phan tich moi truong marketingChapter 3   phan tich moi truong marketing
Chapter 3 phan tich moi truong marketing
 
簡報1
簡報1簡報1
簡報1
 
我們都有來喔
我們都有來喔我們都有來喔
我們都有來喔
 
5亭賢結婚
5亭賢結婚5亭賢結婚
5亭賢結婚
 
世運
世運世運
世運
 
32
3232
32
 
Information security
Information securityInformation security
Information security
 
Nativos e inmigrantes
Nativos e inmigrantesNativos e inmigrantes
Nativos e inmigrantes
 
Octopus habitats
Octopus habitatsOctopus habitats
Octopus habitats
 
Prezentarea proiectului scoli implicate
Prezentarea proiectului   scoli implicatePrezentarea proiectului   scoli implicate
Prezentarea proiectului scoli implicate
 
Resources assort urdu-shadi-al-shadi-047-nikah presentation - 3
Resources assort urdu-shadi-al-shadi-047-nikah presentation - 3Resources assort urdu-shadi-al-shadi-047-nikah presentation - 3
Resources assort urdu-shadi-al-shadi-047-nikah presentation - 3
 
1亭賢結婚11 10-8
1亭賢結婚11 10-81亭賢結婚11 10-8
1亭賢結婚11 10-8
 
6亭賢結婚
6亭賢結婚6亭賢結婚
6亭賢結婚
 

Similar to O auth2.0 20141003

Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
Gaurav Sharma
 

Similar to O auth2.0 20141003 (20)

Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWT
 
Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
 
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
 
Microservice security with spring security 5.1,Oauth 2.0 and open id connect
Microservice security with spring security 5.1,Oauth 2.0 and open id connect Microservice security with spring security 5.1,Oauth 2.0 and open id connect
Microservice security with spring security 5.1,Oauth 2.0 and open id connect
 
What the Heck is OAuth and OIDC - Denver Developer Identity Workshop 2020
What the Heck is OAuth and OIDC - Denver Developer Identity Workshop 2020What the Heck is OAuth and OIDC - Denver Developer Identity Workshop 2020
What the Heck is OAuth and OIDC - Denver Developer Identity Workshop 2020
 
Introduction to OAuth2.0
Introduction to OAuth2.0Introduction to OAuth2.0
Introduction to OAuth2.0
 
OAuth2 + API Security
OAuth2 + API SecurityOAuth2 + API Security
OAuth2 + API Security
 
.NET Core, ASP.NET Core Course, Session 19
 .NET Core, ASP.NET Core Course, Session 19 .NET Core, ASP.NET Core Course, Session 19
.NET Core, ASP.NET Core Course, Session 19
 
What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018What the Heck is OAuth and OIDC - UberConf 2018
What the Heck is OAuth and OIDC - UberConf 2018
 
OAuth with Salesforce - Demystified
OAuth with Salesforce - DemystifiedOAuth with Salesforce - Demystified
OAuth with Salesforce - Demystified
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystified
 
OAuth in the Wild
OAuth in the WildOAuth in the Wild
OAuth in the Wild
 
O auth2.0 guide
O auth2.0 guideO auth2.0 guide
O auth2.0 guide
 
Microsoft Graph API Delegated Permissions
Microsoft Graph API Delegated PermissionsMicrosoft Graph API Delegated Permissions
Microsoft Graph API Delegated Permissions
 
Lecture #25 : Oauth 2.0
Lecture #25 : Oauth 2.0Lecture #25 : Oauth 2.0
Lecture #25 : Oauth 2.0
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
 
Api security with OAuth
Api security with OAuthApi security with OAuth
Api security with OAuth
 
Deep Dive into OAuth for Connected Apps
Deep Dive into OAuth for Connected AppsDeep Dive into OAuth for Connected Apps
Deep Dive into OAuth for Connected Apps
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID Connect
 

More from Syed Ali Raza (6)

E health Demystified
E health DemystifiedE health Demystified
E health Demystified
 
FHIR REST API
FHIR REST APIFHIR REST API
FHIR REST API
 
What is a Software Module?
What is a Software Module?What is a Software Module?
What is a Software Module?
 
Hl7 common terminology services
Hl7 common terminology servicesHl7 common terminology services
Hl7 common terminology services
 
Electronic health records
Electronic health recordsElectronic health records
Electronic health records
 
Chap 1
Chap 1Chap 1
Chap 1
 

Recently uploaded

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Recently uploaded (20)

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 

O auth2.0 20141003

  • 1. OAuth 2.0 Syed Ali Raza
  • 2. Why traditional session & cookie method doesn’t work with API? Third party applications can not save password as a salted hash. Resource owner can not limit the time of access or what resources to access by clients Resource owners cannot revoke access to an individual third party Compromise of any third‐party application results in compromise of the end-user's data.
  • 3. Oauth 2.0 Designed to fix these issues. Finer control over resources Revoke access to individual apps Change password without revoking access to apps. Does not require resource owner to provide credentials directly to your app Provides a model where you can create a key to provide to your app to access a specific part of your app. You can revoke a key without revoking a master key
  • 4. 4 Roles Resource Owner Client Resource Server Authorization Server
  • 5. OAuth 2 (A) Give me the key of your car (B) It’s with key holder, I will give you a chit, show this to key holder and ask for key. You can’t open my private stuff box with this key (C) Give me car key. Here is the chit of approve from owner (D) Ok, This is accepted, here is the key (E) Give me car to repair, this is the key (F) Ok, have the car Car owner Key Holder Car park Mechanic
  • 6. OAuth 2 (A) Authorization Request (B) Authorization Grant (C) Authorization Grant (D) Access Token (E) Access Token (F) Protected Resource Resource owner Client Credentials Authorization Server Resource Server Implicit Client Resource Owner Password Credentials Authorization Code
  • 8. oAuth 2.0 infrastructure Internet Client Registration Endpoint Authorization Endpoint Token Endpoint Protected Resources (such as user media or address book) Client Registrations Users (Resource Owners) Tokens and Authorization Codes Client Registration Manager Authenticator Token Manager Resource Access Manager Resource Permissions and Scope Definitions oAuth 2.0 Resource Filter HTTP proxy Resourc e Owner User Agent (browser) Client Authorization Server Resource Server

Editor's Notes

  1. but in clear text as they will use user credentials later to access resources. To revoke access resource owner has to change password which will automatically revoke all other clients. password and all of the data protected by that password.
  2. An authorization grant is a credential representing the resource owner's authorization (to access its protected resources) used by the client to obtain an access token. The implicit grant is a simplified authorization code flow optimized for clients implemented in a browse using a scripting language such as JavaScript Client credentials are used as an authorization grant when the client is also the resource owner.
  3. OAuth defines four roles: resource owner: An entity capable of granting access to a protected resource (e.g. end-user). resource server: The server hosting the protected resources, capable of accepting and responding to protected resource requests using access tokens. client: An application making protected resource requests on behalf of the resource owner and with its authorization. authorization server: The server issuing access tokens to the client after successfully authenticating the resource owner and obtaining authorization.