@react-native-firebase/auth 23.8.8 → 24.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/lib/index.d.ts +42 -43
- package/lib/modular/index.d.ts +0 -1
- package/lib/version.js +1 -1
- package/package.json +3 -3
- package/typedoc.json +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [24.1.0](https://github.com/invertase/react-native-firebase/compare/v24.0.0...v24.1.0) (2026-06-05)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @react-native-firebase/auth
|
|
9
|
+
|
|
10
|
+
## [24.0.0](https://github.com/invertase/react-native-firebase/compare/v23.8.6...v24.0.0) (2026-04-01)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **firestore:** Support for Firestore pipelines API ([#8931](https://github.com/invertase/react-native-firebase/issues/8931)) ([54021c4](https://github.com/invertase/react-native-firebase/commit/54021c4af427abc3c8e224b546d68661aa1fc590))
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **auth, web:** avoid react-native-specific methods in web ([06426f2](https://github.com/invertase/react-native-firebase/commit/06426f24a94574e1364c48737ba0b01396b37d63))
|
|
19
|
+
- **auth:** auto-register encoded app ID URL scheme for phone auth reCAPTCHA ([#8902](https://github.com/invertase/react-native-firebase/issues/8902)) ([d2ddbf7](https://github.com/invertase/react-native-firebase/commit/d2ddbf7cf2a9ee445a18bcde7c7b5089bba8756d))
|
|
20
|
+
- **messaging, expo:** retrieve expo-notification config if available, then deprecated notification ([#8663](https://github.com/invertase/react-native-firebase/issues/8663)) ([aa63174](https://github.com/invertase/react-native-firebase/commit/aa63174b997b62176964d9935929cb686b03f8b3))
|
|
21
|
+
|
|
6
22
|
## [23.8.8](https://github.com/invertase/react-native-firebase/compare/v23.8.6...v23.8.8) (2026-03-12)
|
|
7
23
|
|
|
8
24
|
### Bug Fixes
|
package/lib/index.d.ts
CHANGED
|
@@ -102,7 +102,7 @@ export namespace FirebaseAuthTypes {
|
|
|
102
102
|
/**
|
|
103
103
|
* Creates a new `AuthCredential`.
|
|
104
104
|
*
|
|
105
|
-
* @returns {@link
|
|
105
|
+
* @returns {@link AuthCredential}.
|
|
106
106
|
* @param token A provider token.
|
|
107
107
|
* @param secret A provider secret.
|
|
108
108
|
*/
|
|
@@ -122,7 +122,7 @@ export namespace FirebaseAuthTypes {
|
|
|
122
122
|
/**
|
|
123
123
|
* Creates a new `AuthCredential`.
|
|
124
124
|
*
|
|
125
|
-
* @returns {@link
|
|
125
|
+
* @returns {@link AuthCredential}.
|
|
126
126
|
* @param token A provider token.
|
|
127
127
|
* @param secret A provider secret.
|
|
128
128
|
*/
|
|
@@ -166,7 +166,7 @@ export namespace FirebaseAuthTypes {
|
|
|
166
166
|
/**
|
|
167
167
|
* Creates a new `OIDCProvider`.
|
|
168
168
|
*
|
|
169
|
-
* @returns {@link
|
|
169
|
+
* @returns {@link AuthCredential}.
|
|
170
170
|
* @param oidcSuffix this is the "Provider ID" value from the firebase console fx `azure_test`.
|
|
171
171
|
* @param token A provider token.
|
|
172
172
|
*/
|
|
@@ -182,7 +182,7 @@ export namespace FirebaseAuthTypes {
|
|
|
182
182
|
*/
|
|
183
183
|
PROVIDER_ID: string;
|
|
184
184
|
/**
|
|
185
|
-
* This corresponds to the sign-in method identifier as returned in {@link
|
|
185
|
+
* This corresponds to the sign-in method identifier as returned in {@link fetchSignInMethodsForEmail}.
|
|
186
186
|
*
|
|
187
187
|
* #### Example
|
|
188
188
|
*
|
|
@@ -195,7 +195,7 @@ export namespace FirebaseAuthTypes {
|
|
|
195
195
|
*/
|
|
196
196
|
EMAIL_LINK_SIGN_IN_METHOD: string;
|
|
197
197
|
/**
|
|
198
|
-
* This corresponds to the sign-in method identifier as returned in {@link
|
|
198
|
+
* This corresponds to the sign-in method identifier as returned in {@link fetchSignInMethodsForEmail}.
|
|
199
199
|
*
|
|
200
200
|
* #### Example
|
|
201
201
|
*
|
|
@@ -216,7 +216,7 @@ export namespace FirebaseAuthTypes {
|
|
|
216
216
|
* const authCredential = firebase.auth.EmailAuthProvider.credential('joe.bloggs@example.com', '123456');
|
|
217
217
|
* ```
|
|
218
218
|
*
|
|
219
|
-
* @returns {@link
|
|
219
|
+
* @returns {@link AuthCredential}
|
|
220
220
|
* @param email Users email address.
|
|
221
221
|
* @param password User account password.
|
|
222
222
|
*/
|
|
@@ -245,7 +245,7 @@ export namespace FirebaseAuthTypes {
|
|
|
245
245
|
*/
|
|
246
246
|
CODE_SENT: 'sent';
|
|
247
247
|
/**
|
|
248
|
-
* The timeout specified in {@link
|
|
248
|
+
* The timeout specified in {@link verifyPhoneNumber} has expired.
|
|
249
249
|
*/
|
|
250
250
|
AUTO_VERIFY_TIMEOUT: 'timeout';
|
|
251
251
|
/**
|
|
@@ -258,7 +258,6 @@ export namespace FirebaseAuthTypes {
|
|
|
258
258
|
ERROR: 'error';
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
262
261
|
export interface MultiFactorSession {
|
|
263
262
|
// this is has no documented contents, it is simply returned from some APIs and passed to others
|
|
264
263
|
}
|
|
@@ -472,7 +471,7 @@ export namespace FirebaseAuthTypes {
|
|
|
472
471
|
}
|
|
473
472
|
|
|
474
473
|
/**
|
|
475
|
-
* A structure containing additional user information from a federated identity provider via {@link
|
|
474
|
+
* A structure containing additional user information from a federated identity provider via {@link UserCredential}.
|
|
476
475
|
*
|
|
477
476
|
* #### Example
|
|
478
477
|
*
|
|
@@ -516,13 +515,13 @@ export namespace FirebaseAuthTypes {
|
|
|
516
515
|
*/
|
|
517
516
|
additionalUserInfo?: AdditionalUserInfo;
|
|
518
517
|
/**
|
|
519
|
-
* Returns the {@link
|
|
518
|
+
* Returns the {@link User} interface of this credential.
|
|
520
519
|
*/
|
|
521
520
|
user: User;
|
|
522
521
|
}
|
|
523
522
|
|
|
524
523
|
/**
|
|
525
|
-
* Holds the user metadata for the current {@link
|
|
524
|
+
* Holds the user metadata for the current {@link User}.
|
|
526
525
|
*
|
|
527
526
|
* #### Example
|
|
528
527
|
*
|
|
@@ -748,7 +747,7 @@ export namespace FirebaseAuthTypes {
|
|
|
748
747
|
}
|
|
749
748
|
|
|
750
749
|
/**
|
|
751
|
-
* Interface representing ID token result obtained from {@link
|
|
750
|
+
* Interface representing ID token result obtained from {@link User#getIdTokenResult}.
|
|
752
751
|
* It contains the ID token JWT string and other helper properties for getting different data
|
|
753
752
|
* associated with the token as well as all the decoded payload claims.
|
|
754
753
|
*
|
|
@@ -819,7 +818,7 @@ export namespace FirebaseAuthTypes {
|
|
|
819
818
|
}
|
|
820
819
|
|
|
821
820
|
/**
|
|
822
|
-
* A result from a {@link
|
|
821
|
+
* A result from a {@link signInWithPhoneNumber} call.
|
|
823
822
|
*
|
|
824
823
|
* #### Example
|
|
825
824
|
*
|
|
@@ -844,8 +843,8 @@ export namespace FirebaseAuthTypes {
|
|
|
844
843
|
}
|
|
845
844
|
|
|
846
845
|
/**
|
|
847
|
-
* Android specific options which can be attached to the {@link
|
|
848
|
-
* to be sent with requests such as {@link
|
|
846
|
+
* Android specific options which can be attached to the {@link ActionCodeSettings} object
|
|
847
|
+
* to be sent with requests such as {@link User#sendEmailVerification}.
|
|
849
848
|
*
|
|
850
849
|
* #### Example
|
|
851
850
|
*
|
|
@@ -874,7 +873,7 @@ export namespace FirebaseAuthTypes {
|
|
|
874
873
|
}
|
|
875
874
|
|
|
876
875
|
/**
|
|
877
|
-
* Additional data returned from a {@link
|
|
876
|
+
* Additional data returned from a {@link checkActionCode} call.
|
|
878
877
|
* For the PASSWORD_RESET, VERIFY_EMAIL, and RECOVER_EMAIL actions, this object contains an email field with the address the email was sent to.
|
|
879
878
|
* For the RECOVER_EMAIL action, which allows a user to undo an email address change, this object also contains a fromEmail field with the user account's new email address. After the action completes, the user's email address will revert to the value in the email field from the value in fromEmail field.
|
|
880
879
|
*
|
|
@@ -893,13 +892,13 @@ export namespace FirebaseAuthTypes {
|
|
|
893
892
|
*/
|
|
894
893
|
email?: string;
|
|
895
894
|
/**
|
|
896
|
-
* This signifies the current email associated with the account, which may have changed as a result of the {@link
|
|
895
|
+
* This signifies the current email associated with the account, which may have changed as a result of the {@link checkActionCode} call performed.
|
|
897
896
|
*/
|
|
898
897
|
fromEmail?: string;
|
|
899
898
|
}
|
|
900
899
|
|
|
901
900
|
/**
|
|
902
|
-
* The interface returned from a {@link
|
|
901
|
+
* The interface returned from a {@link checkActionCode} call.
|
|
903
902
|
*
|
|
904
903
|
* #### Example
|
|
905
904
|
*
|
|
@@ -920,8 +919,8 @@ export namespace FirebaseAuthTypes {
|
|
|
920
919
|
}
|
|
921
920
|
|
|
922
921
|
/**
|
|
923
|
-
* iOS specific options which can be attached to the {@link
|
|
924
|
-
* to be sent with requests such as {@link
|
|
922
|
+
* iOS specific options which can be attached to the {@link ActionCodeSettings} object
|
|
923
|
+
* to be sent with requests such as {@link User#sendEmailVerification}.
|
|
925
924
|
*
|
|
926
925
|
* #### Example
|
|
927
926
|
*
|
|
@@ -941,7 +940,7 @@ export namespace FirebaseAuthTypes {
|
|
|
941
940
|
}
|
|
942
941
|
|
|
943
942
|
/**
|
|
944
|
-
* Options to be sent with requests such as {@link
|
|
943
|
+
* Options to be sent with requests such as {@link User#sendEmailVerification}.
|
|
945
944
|
*
|
|
946
945
|
* #### Example
|
|
947
946
|
*
|
|
@@ -986,7 +985,7 @@ export namespace FirebaseAuthTypes {
|
|
|
986
985
|
}
|
|
987
986
|
|
|
988
987
|
/**
|
|
989
|
-
* An auth listener callback function for {@link
|
|
988
|
+
* An auth listener callback function for {@link onAuthStateChanged}.
|
|
990
989
|
*
|
|
991
990
|
* #### Example
|
|
992
991
|
*
|
|
@@ -1074,11 +1073,11 @@ export namespace FirebaseAuthTypes {
|
|
|
1074
1073
|
}
|
|
1075
1074
|
|
|
1076
1075
|
/**
|
|
1077
|
-
* The listener function returned from a {@link
|
|
1076
|
+
* The listener function returned from a {@link verifyPhoneNumber} call.
|
|
1078
1077
|
*/
|
|
1079
1078
|
export interface PhoneAuthListener {
|
|
1080
1079
|
/**
|
|
1081
|
-
* The phone auth state listener. See {@link
|
|
1080
|
+
* The phone auth state listener. See {@link PhoneAuthState} for different event state types.
|
|
1082
1081
|
*
|
|
1083
1082
|
* #### Example
|
|
1084
1083
|
*
|
|
@@ -1153,7 +1152,7 @@ export namespace FirebaseAuthTypes {
|
|
|
1153
1152
|
* });
|
|
1154
1153
|
* ```
|
|
1155
1154
|
*
|
|
1156
|
-
* > Used when no `onRejected` handler is passed to {@link
|
|
1155
|
+
* > Used when no `onRejected` handler is passed to {@link PhoneAuthListener#then}.
|
|
1157
1156
|
*
|
|
1158
1157
|
* @param onRejected Rejected promise handler.
|
|
1159
1158
|
*/
|
|
@@ -1254,24 +1253,24 @@ export namespace FirebaseAuthTypes {
|
|
|
1254
1253
|
emailVerified: boolean;
|
|
1255
1254
|
/**
|
|
1256
1255
|
* Returns true if the user is anonymous; that is, the user account was created with
|
|
1257
|
-
* {@link
|
|
1258
|
-
* with {@link
|
|
1256
|
+
* {@link signInAnonymously} and has not been linked to another account
|
|
1257
|
+
* with {@link linkWithCredential}.
|
|
1259
1258
|
*/
|
|
1260
1259
|
isAnonymous: boolean;
|
|
1261
1260
|
|
|
1262
1261
|
/**
|
|
1263
|
-
* Returns the {@link
|
|
1262
|
+
* Returns the {@link UserMetadata} associated with this user.
|
|
1264
1263
|
*/
|
|
1265
1264
|
metadata: UserMetadata;
|
|
1266
1265
|
|
|
1267
1266
|
/**
|
|
1268
|
-
* Returns the {@link
|
|
1267
|
+
* Returns the {@link MultiFactor} associated with this user.
|
|
1269
1268
|
*/
|
|
1270
1269
|
multiFactor: MultiFactor | null;
|
|
1271
1270
|
|
|
1272
1271
|
/**
|
|
1273
1272
|
* Returns the phone number of the user, as stored in the Firebase project's user database,
|
|
1274
|
-
* or null if none exists. This can be updated at any time by calling {@link
|
|
1273
|
+
* or null if none exists. This can be updated at any time by calling {@link User#updatePhoneNumber}.
|
|
1275
1274
|
*/
|
|
1276
1275
|
phoneNumber: string | null;
|
|
1277
1276
|
|
|
@@ -1358,8 +1357,8 @@ export namespace FirebaseAuthTypes {
|
|
|
1358
1357
|
* @error auth/wrong-password Thrown if the password used in a auth.EmailAuthProvider.credential is not correct or when the user associated with the email does not have a password.
|
|
1359
1358
|
* @error auth/invalid-verification-code Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification code of the credential is not valid.
|
|
1360
1359
|
* @error auth/invalid-verification-id Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification ID of the credential is not valid.
|
|
1361
|
-
* @throws on iOS {@link
|
|
1362
|
-
* @param credential A created {@link
|
|
1360
|
+
* @throws on iOS {@link NativeFirebaseAuthError}, on Android {@link NativeFirebaseError}
|
|
1361
|
+
* @param credential A created {@link AuthCredential}.
|
|
1363
1362
|
*/
|
|
1364
1363
|
linkWithCredential(credential: AuthCredential): Promise<UserCredential>;
|
|
1365
1364
|
|
|
@@ -1384,8 +1383,8 @@ export namespace FirebaseAuthTypes {
|
|
|
1384
1383
|
* @error auth/wrong-password Thrown if the password used in a auth.EmailAuthProvider.credential is not correct or when the user associated with the email does not have a password.
|
|
1385
1384
|
* @error auth/invalid-verification-code Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification code of the credential is not valid.
|
|
1386
1385
|
* @error auth/invalid-verification-id Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification ID of the credential is not valid.
|
|
1387
|
-
* @throws on iOS {@link
|
|
1388
|
-
* @param provider A created {@link
|
|
1386
|
+
* @throws on iOS {@link NativeFirebaseAuthError}, on Android {@link NativeFirebaseError}
|
|
1387
|
+
* @param provider A created {@link AuthProvider}.
|
|
1389
1388
|
*/
|
|
1390
1389
|
linkWithPopup(provider: AuthProvider): Promise<UserCredential>;
|
|
1391
1390
|
|
|
@@ -1410,8 +1409,8 @@ export namespace FirebaseAuthTypes {
|
|
|
1410
1409
|
* @error auth/wrong-password Thrown if the password used in a auth.EmailAuthProvider.credential is not correct or when the user associated with the email does not have a password.
|
|
1411
1410
|
* @error auth/invalid-verification-code Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification code of the credential is not valid.
|
|
1412
1411
|
* @error auth/invalid-verification-id Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification ID of the credential is not valid.
|
|
1413
|
-
* @throws on iOS {@link
|
|
1414
|
-
* @param provider A created {@link
|
|
1412
|
+
* @throws on iOS {@link NativeFirebaseAuthError}, on Android {@link NativeFirebaseError}
|
|
1413
|
+
* @param provider A created {@link AuthProvider}.
|
|
1415
1414
|
*/
|
|
1416
1415
|
linkWithRedirect(provider: AuthProvider): Promise<UserCredential>;
|
|
1417
1416
|
|
|
@@ -1432,7 +1431,7 @@ export namespace FirebaseAuthTypes {
|
|
|
1432
1431
|
* @error auth/wrong-password Thrown if the password used in a auth.EmailAuthProvider.credential is not correct or when the user associated with the email does not have a password.
|
|
1433
1432
|
* @error auth/invalid-verification-code Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification code of the credential is not valid.
|
|
1434
1433
|
* @error auth/invalid-verification-id Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification ID of the credential is not valid.
|
|
1435
|
-
* @param credential A created {@link
|
|
1434
|
+
* @param credential A created {@link AuthCredential}.
|
|
1436
1435
|
*/
|
|
1437
1436
|
reauthenticateWithCredential(credential: AuthCredential): Promise<UserCredential>;
|
|
1438
1437
|
|
|
@@ -1452,7 +1451,7 @@ export namespace FirebaseAuthTypes {
|
|
|
1452
1451
|
* @error auth/wrong-password Thrown if the password used in a auth.EmailAuthProvider.credential is not correct or when the user associated with the email does not have a password.
|
|
1453
1452
|
* @error auth/invalid-verification-code Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification code of the credential is not valid.
|
|
1454
1453
|
* @error auth/invalid-verification-id Thrown if the credential is a auth.PhoneAuthProvider.credential and the verification ID of the credential is not valid.
|
|
1455
|
-
* @param provider A created {@link
|
|
1454
|
+
* @param provider A created {@link AuthProvider}.
|
|
1456
1455
|
* @returns A promise that resolves with no value.
|
|
1457
1456
|
*/
|
|
1458
1457
|
reauthenticateWithRedirect(provider: AuthProvider): Promise<void>;
|
|
@@ -1687,7 +1686,7 @@ export namespace FirebaseAuthTypes {
|
|
|
1687
1686
|
* const user = firebase.auth().currentUser;
|
|
1688
1687
|
* ```
|
|
1689
1688
|
*
|
|
1690
|
-
* > It is recommended to use {@link
|
|
1689
|
+
* > It is recommended to use {@link onAuthStateChanged} to track whether the user is currently signed in.
|
|
1691
1690
|
*/
|
|
1692
1691
|
currentUser: User | null;
|
|
1693
1692
|
/**
|
|
@@ -1766,9 +1765,9 @@ export namespace FirebaseAuthTypes {
|
|
|
1766
1765
|
|
|
1767
1766
|
/**
|
|
1768
1767
|
* Adds a listener to observe changes to the User object. This is a superset of everything from
|
|
1769
|
-
* {@link
|
|
1768
|
+
* {@link onAuthStateChanged}, {@link onIdTokenChanged} and user changes. The goal of this
|
|
1770
1769
|
* method is to provide easier listening to all user changes, such as when credentials are
|
|
1771
|
-
* linked and unlinked, without manually having to call {@link
|
|
1770
|
+
* linked and unlinked, without manually having to call {@link User#reload}.
|
|
1772
1771
|
*
|
|
1773
1772
|
* #### Example
|
|
1774
1773
|
*
|
|
@@ -1793,7 +1792,7 @@ export namespace FirebaseAuthTypes {
|
|
|
1793
1792
|
/**
|
|
1794
1793
|
* Signs the user out.
|
|
1795
1794
|
*
|
|
1796
|
-
* Triggers the {@link
|
|
1795
|
+
* Triggers the {@link onAuthStateChanged} listener.
|
|
1797
1796
|
*
|
|
1798
1797
|
* #### Example
|
|
1799
1798
|
*
|
|
@@ -2144,7 +2143,7 @@ export namespace FirebaseAuthTypes {
|
|
|
2144
2143
|
|
|
2145
2144
|
/**
|
|
2146
2145
|
* Completes the password reset process with the confirmation code and new password, via
|
|
2147
|
-
* {@link
|
|
2146
|
+
* {@link sendPasswordResetEmail}.
|
|
2148
2147
|
*
|
|
2149
2148
|
* #### Example
|
|
2150
2149
|
*
|
package/lib/modular/index.d.ts
CHANGED
|
@@ -154,7 +154,6 @@ export function getRedirectResult(
|
|
|
154
154
|
resolver?: PopupRedirectResolver,
|
|
155
155
|
): Promise<FirebaseAuthTypes.UserCredential | null>;
|
|
156
156
|
|
|
157
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
158
157
|
export interface PopupRedirectResolver {}
|
|
159
158
|
|
|
160
159
|
/**
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
module.exports = '
|
|
2
|
+
module.exports = '24.1.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-firebase/auth",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "24.1.0",
|
|
4
4
|
"author": "Invertase <oss@invertase.io> (http://invertase.io)",
|
|
5
5
|
"description": "React Native Firebase - The authentication module provides an easy-to-use API to integrate an authentication workflow into new and existing applications. React Native Firebase provides access to all Firebase authentication methods and identity providers.",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"plist": "^3.1.0"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@react-native-firebase/app": "
|
|
30
|
+
"@react-native-firebase/app": "24.1.0",
|
|
31
31
|
"expo": ">=47.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"access": "public",
|
|
44
44
|
"provenance": true
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "804a51fd265453f2385adb0ac96a6abf992c0316"
|
|
47
47
|
}
|