@@ -6,67 +6,67 @@ |
||
6 | 6 | class SettingsObserver |
7 | 7 | { |
8 | 8 | |
9 | - public function saving($model) |
|
10 | - { |
|
11 | - // |
|
12 | - } |
|
9 | + public function saving($model) |
|
10 | + { |
|
11 | + // |
|
12 | + } |
|
13 | 13 | |
14 | - public function saved($model) |
|
15 | - { |
|
16 | - // |
|
17 | - } |
|
14 | + public function saved($model) |
|
15 | + { |
|
16 | + // |
|
17 | + } |
|
18 | 18 | |
19 | - /** |
|
20 | - * Prevent the creating of the settings. |
|
21 | - * |
|
22 | - * @param object $model the model beign created. |
|
23 | - * @return void |
|
24 | - */ |
|
25 | - public function creating($model) |
|
26 | - { |
|
27 | - \ErrorHandler::cannotCreateSetting(); |
|
28 | - } |
|
19 | + /** |
|
20 | + * Prevent the creating of the settings. |
|
21 | + * |
|
22 | + * @param object $model the model beign created. |
|
23 | + * @return void |
|
24 | + */ |
|
25 | + public function creating($model) |
|
26 | + { |
|
27 | + \ErrorHandler::cannotCreateSetting(); |
|
28 | + } |
|
29 | 29 | |
30 | - public function created($model) |
|
31 | - { |
|
32 | - // |
|
33 | - } |
|
30 | + public function created($model) |
|
31 | + { |
|
32 | + // |
|
33 | + } |
|
34 | 34 | |
35 | - /** |
|
36 | - * Prevent updating of the setting key. |
|
37 | - * |
|
38 | - * @param object $model the model beign updated. |
|
39 | - * @return void |
|
40 | - */ |
|
41 | - public function updating($model) |
|
42 | - { |
|
43 | - if ($model->getOriginal('key') !== $model->key) { |
|
44 | - \ErrorHandler::cannotUpdateSettingKey(); |
|
45 | - } |
|
46 | - } |
|
35 | + /** |
|
36 | + * Prevent updating of the setting key. |
|
37 | + * |
|
38 | + * @param object $model the model beign updated. |
|
39 | + * @return void |
|
40 | + */ |
|
41 | + public function updating($model) |
|
42 | + { |
|
43 | + if ($model->getOriginal('key') !== $model->key) { |
|
44 | + \ErrorHandler::cannotUpdateSettingKey(); |
|
45 | + } |
|
46 | + } |
|
47 | 47 | |
48 | - public function updated($model) |
|
49 | - { |
|
50 | - // |
|
51 | - } |
|
48 | + public function updated($model) |
|
49 | + { |
|
50 | + // |
|
51 | + } |
|
52 | 52 | |
53 | - public function deleting($model) |
|
54 | - { |
|
55 | - // |
|
56 | - } |
|
53 | + public function deleting($model) |
|
54 | + { |
|
55 | + // |
|
56 | + } |
|
57 | 57 | |
58 | - public function deleted($model) |
|
59 | - { |
|
60 | - // |
|
61 | - } |
|
58 | + public function deleted($model) |
|
59 | + { |
|
60 | + // |
|
61 | + } |
|
62 | 62 | |
63 | - public function restoring($model) |
|
64 | - { |
|
65 | - // |
|
66 | - } |
|
63 | + public function restoring($model) |
|
64 | + { |
|
65 | + // |
|
66 | + } |
|
67 | 67 | |
68 | - public function restored($model) |
|
69 | - { |
|
70 | - // |
|
71 | - } |
|
68 | + public function restored($model) |
|
69 | + { |
|
70 | + // |
|
71 | + } |
|
72 | 72 | } |
@@ -2,46 +2,46 @@ |
||
2 | 2 | |
3 | 3 | trait Translatable |
4 | 4 | { |
5 | - /** |
|
6 | - * Create a new model instance that is existing. |
|
7 | - * |
|
8 | - * @param array $attributes |
|
9 | - * @param string|null $connection |
|
10 | - * @return static |
|
11 | - */ |
|
12 | - public function newFromBuilder($attributes = [], $connection = null) |
|
13 | - { |
|
14 | - $model = parent::newFromBuilder($attributes, $connection); |
|
5 | + /** |
|
6 | + * Create a new model instance that is existing. |
|
7 | + * |
|
8 | + * @param array $attributes |
|
9 | + * @param string|null $connection |
|
10 | + * @return static |
|
11 | + */ |
|
12 | + public function newFromBuilder($attributes = [], $connection = null) |
|
13 | + { |
|
14 | + $model = parent::newFromBuilder($attributes, $connection); |
|
15 | 15 | |
16 | - foreach ($model->attributes as $key => $value) { |
|
17 | - if (isset($this->translatable) && in_array($key, $this->translatable)) { |
|
18 | - $model->$key = $this->getTranslatedAttribute($value); |
|
19 | - } |
|
20 | - } |
|
16 | + foreach ($model->attributes as $key => $value) { |
|
17 | + if (isset($this->translatable) && in_array($key, $this->translatable)) { |
|
18 | + $model->$key = $this->getTranslatedAttribute($value); |
|
19 | + } |
|
20 | + } |
|
21 | 21 | |
22 | - return $model; |
|
23 | - } |
|
22 | + return $model; |
|
23 | + } |
|
24 | 24 | |
25 | - /** |
|
26 | - * Returns a translatable model attribute based on the application's locale settings. |
|
27 | - * |
|
28 | - * @param $values |
|
29 | - * @return string |
|
30 | - */ |
|
31 | - protected function getTranslatedAttribute($values) |
|
32 | - { |
|
33 | - $values = json_decode($values); |
|
34 | - $primaryLocale = \Session::get('locale'); |
|
35 | - $fallbackLocale = 'en'; |
|
25 | + /** |
|
26 | + * Returns a translatable model attribute based on the application's locale settings. |
|
27 | + * |
|
28 | + * @param $values |
|
29 | + * @return string |
|
30 | + */ |
|
31 | + protected function getTranslatedAttribute($values) |
|
32 | + { |
|
33 | + $values = json_decode($values); |
|
34 | + $primaryLocale = \Session::get('locale'); |
|
35 | + $fallbackLocale = 'en'; |
|
36 | 36 | |
37 | - if ($primaryLocale == 'all') { |
|
38 | - return $values; |
|
39 | - } |
|
37 | + if ($primaryLocale == 'all') { |
|
38 | + return $values; |
|
39 | + } |
|
40 | 40 | |
41 | - if (! $primaryLocale || ! is_object($values) || ! property_exists($values, $primaryLocale)) { |
|
42 | - return $values ? isset($values->$fallbackLocale) ? $values->$fallbackLocale : $values : ''; |
|
43 | - } |
|
41 | + if (! $primaryLocale || ! is_object($values) || ! property_exists($values, $primaryLocale)) { |
|
42 | + return $values ? isset($values->$fallbackLocale) ? $values->$fallbackLocale : $values : ''; |
|
43 | + } |
|
44 | 44 | |
45 | - return $primaryLocale == 'all' ? $values : $values->$primaryLocale; |
|
46 | - } |
|
45 | + return $primaryLocale == 'all' ? $values : $values->$primaryLocale; |
|
46 | + } |
|
47 | 47 | } |
@@ -2,8 +2,8 @@ |
||
2 | 2 | |
3 | 3 | return [ |
4 | 4 | |
5 | - /** |
|
6 | - * Here goes your notification messages. |
|
7 | - */ |
|
5 | + /** |
|
6 | + * Here goes your notification messages. |
|
7 | + */ |
|
8 | 8 | |
9 | 9 | ]; |
@@ -7,67 +7,67 @@ |
||
7 | 7 | |
8 | 8 | class Handler extends ExceptionHandler |
9 | 9 | { |
10 | - /** |
|
11 | - * A list of the exception types that are not reported. |
|
12 | - * |
|
13 | - * @var array |
|
14 | - */ |
|
15 | - protected $dontReport = [ |
|
16 | - \League\OAuth2\Server\Exception\OAuthServerException::class, |
|
17 | - ]; |
|
10 | + /** |
|
11 | + * A list of the exception types that are not reported. |
|
12 | + * |
|
13 | + * @var array |
|
14 | + */ |
|
15 | + protected $dontReport = [ |
|
16 | + \League\OAuth2\Server\Exception\OAuthServerException::class, |
|
17 | + ]; |
|
18 | 18 | |
19 | - /** |
|
20 | - * A list of the inputs that are never flashed for validation exceptions. |
|
21 | - * |
|
22 | - * @var array |
|
23 | - */ |
|
24 | - protected $dontFlash = [ |
|
25 | - 'password', |
|
26 | - 'password_confirmation', |
|
27 | - ]; |
|
19 | + /** |
|
20 | + * A list of the inputs that are never flashed for validation exceptions. |
|
21 | + * |
|
22 | + * @var array |
|
23 | + */ |
|
24 | + protected $dontFlash = [ |
|
25 | + 'password', |
|
26 | + 'password_confirmation', |
|
27 | + ]; |
|
28 | 28 | |
29 | - /** |
|
30 | - * Report or log an exception. |
|
31 | - * |
|
32 | - * This is a great spot to send exceptions to Sentry, Bugsnag, etc. |
|
33 | - * |
|
34 | - * @param \Exception $exception |
|
35 | - * @return void |
|
36 | - */ |
|
37 | - public function report(Exception $exception) |
|
38 | - { |
|
39 | - parent::report($exception); |
|
40 | - } |
|
29 | + /** |
|
30 | + * Report or log an exception. |
|
31 | + * |
|
32 | + * This is a great spot to send exceptions to Sentry, Bugsnag, etc. |
|
33 | + * |
|
34 | + * @param \Exception $exception |
|
35 | + * @return void |
|
36 | + */ |
|
37 | + public function report(Exception $exception) |
|
38 | + { |
|
39 | + parent::report($exception); |
|
40 | + } |
|
41 | 41 | |
42 | - /** |
|
43 | - * Render an exception into an HTTP response. |
|
44 | - * |
|
45 | - * @param \Illuminate\Http\Request $request |
|
46 | - * @param \Exception $exception |
|
47 | - * @return \Illuminate\Http\Response |
|
48 | - */ |
|
49 | - public function render($request, Exception $exception) |
|
50 | - { |
|
51 | - if ($request->wantsJson()) { |
|
52 | - if ($exception instanceof \Illuminate\Auth\AuthenticationException) { |
|
53 | - \ErrorHandler::unAuthorized(); |
|
54 | - } |
|
55 | - if ($exception instanceof \Illuminate\Database\QueryException) { |
|
56 | - \ErrorHandler::dbQueryError(); |
|
57 | - } elseif ($exception instanceof \predis\connection\connectionexception) { |
|
58 | - \ErrorHandler::redisNotRunning(); |
|
59 | - } elseif ($exception instanceof \GuzzleHttp\Exception\ClientException) { |
|
60 | - \ErrorHandler::connectionError(); |
|
61 | - } elseif ($exception instanceof \Symfony\Component\HttpKernel\Exception\HttpException) { |
|
62 | - $errors = $exception->getStatusCode() === 404 ? 'not found' : $exception->getMessage(); |
|
63 | - return \Response::json(['errors' => [$errors]], $exception->getStatusCode()); |
|
64 | - } elseif ($exception instanceof \Illuminate\Validation\ValidationException) { |
|
65 | - return \Response::json(['errors' => $exception->errors()], 422); |
|
66 | - } elseif (! $exception instanceof \Symfony\Component\ErrorHandler\Error\FatalError) { |
|
67 | - return parent::render($request, $exception); |
|
68 | - } |
|
69 | - } |
|
42 | + /** |
|
43 | + * Render an exception into an HTTP response. |
|
44 | + * |
|
45 | + * @param \Illuminate\Http\Request $request |
|
46 | + * @param \Exception $exception |
|
47 | + * @return \Illuminate\Http\Response |
|
48 | + */ |
|
49 | + public function render($request, Exception $exception) |
|
50 | + { |
|
51 | + if ($request->wantsJson()) { |
|
52 | + if ($exception instanceof \Illuminate\Auth\AuthenticationException) { |
|
53 | + \ErrorHandler::unAuthorized(); |
|
54 | + } |
|
55 | + if ($exception instanceof \Illuminate\Database\QueryException) { |
|
56 | + \ErrorHandler::dbQueryError(); |
|
57 | + } elseif ($exception instanceof \predis\connection\connectionexception) { |
|
58 | + \ErrorHandler::redisNotRunning(); |
|
59 | + } elseif ($exception instanceof \GuzzleHttp\Exception\ClientException) { |
|
60 | + \ErrorHandler::connectionError(); |
|
61 | + } elseif ($exception instanceof \Symfony\Component\HttpKernel\Exception\HttpException) { |
|
62 | + $errors = $exception->getStatusCode() === 404 ? 'not found' : $exception->getMessage(); |
|
63 | + return \Response::json(['errors' => [$errors]], $exception->getStatusCode()); |
|
64 | + } elseif ($exception instanceof \Illuminate\Validation\ValidationException) { |
|
65 | + return \Response::json(['errors' => $exception->errors()], 422); |
|
66 | + } elseif (! $exception instanceof \Symfony\Component\ErrorHandler\Error\FatalError) { |
|
67 | + return parent::render($request, $exception); |
|
68 | + } |
|
69 | + } |
|
70 | 70 | |
71 | - return parent::render($request, $exception); |
|
72 | - } |
|
71 | + return parent::render($request, $exception); |
|
72 | + } |
|
73 | 73 | } |
@@ -6,37 +6,37 @@ |
||
6 | 6 | class Setting extends Model |
7 | 7 | { |
8 | 8 | |
9 | - use SoftDeletes; |
|
10 | - protected $table = 'settings'; |
|
11 | - protected $dates = ['created_at', 'updated_at', 'deleted_at']; |
|
12 | - protected $hidden = ['deleted_at']; |
|
13 | - protected $guarded = ['id', 'key']; |
|
14 | - protected $fillable = ['name', 'value']; |
|
15 | - public $searchable = ['name', 'value', 'key']; |
|
9 | + use SoftDeletes; |
|
10 | + protected $table = 'settings'; |
|
11 | + protected $dates = ['created_at', 'updated_at', 'deleted_at']; |
|
12 | + protected $hidden = ['deleted_at']; |
|
13 | + protected $guarded = ['id', 'key']; |
|
14 | + protected $fillable = ['name', 'value']; |
|
15 | + public $searchable = ['name', 'value', 'key']; |
|
16 | 16 | |
17 | - public function getCreatedAtAttribute($value) |
|
18 | - { |
|
19 | - return \Carbon\Carbon::parse($value)->tz(\Session::get('time-zone'))->toDateTimeString(); |
|
20 | - } |
|
17 | + public function getCreatedAtAttribute($value) |
|
18 | + { |
|
19 | + return \Carbon\Carbon::parse($value)->tz(\Session::get('time-zone'))->toDateTimeString(); |
|
20 | + } |
|
21 | 21 | |
22 | - public function getUpdatedAtAttribute($value) |
|
23 | - { |
|
24 | - return \Carbon\Carbon::parse($value)->tz(\Session::get('time-zone'))->toDateTimeString(); |
|
25 | - } |
|
22 | + public function getUpdatedAtAttribute($value) |
|
23 | + { |
|
24 | + return \Carbon\Carbon::parse($value)->tz(\Session::get('time-zone'))->toDateTimeString(); |
|
25 | + } |
|
26 | 26 | |
27 | - public function getDeletedAtAttribute($value) |
|
28 | - { |
|
29 | - return \Carbon\Carbon::parse($value)->tz(\Session::get('time-zone'))->toDateTimeString(); |
|
30 | - } |
|
27 | + public function getDeletedAtAttribute($value) |
|
28 | + { |
|
29 | + return \Carbon\Carbon::parse($value)->tz(\Session::get('time-zone'))->toDateTimeString(); |
|
30 | + } |
|
31 | 31 | |
32 | - public function newCollection(array $models = []) |
|
33 | - { |
|
34 | - return parent::newCollection($models)->keyBy('key'); |
|
35 | - } |
|
32 | + public function newCollection(array $models = []) |
|
33 | + { |
|
34 | + return parent::newCollection($models)->keyBy('key'); |
|
35 | + } |
|
36 | 36 | |
37 | - public static function boot() |
|
38 | - { |
|
39 | - parent::boot(); |
|
40 | - Setting::observe(\App::make('App\Modules\Core\ModelObservers\SettingsObserver')); |
|
41 | - } |
|
37 | + public static function boot() |
|
38 | + { |
|
39 | + parent::boot(); |
|
40 | + Setting::observe(\App::make('App\Modules\Core\ModelObservers\SettingsObserver')); |
|
41 | + } |
|
42 | 42 | } |
@@ -9,41 +9,41 @@ |
||
9 | 9 | |
10 | 10 | class ConfirmEmail extends Notification implements ShouldQueue |
11 | 11 | { |
12 | - use Queueable; |
|
12 | + use Queueable; |
|
13 | 13 | |
14 | - /** |
|
15 | - * Init new object. |
|
16 | - * |
|
17 | - * @return void |
|
18 | - */ |
|
19 | - public function __construct() |
|
20 | - { |
|
21 | - // |
|
22 | - } |
|
14 | + /** |
|
15 | + * Init new object. |
|
16 | + * |
|
17 | + * @return void |
|
18 | + */ |
|
19 | + public function __construct() |
|
20 | + { |
|
21 | + // |
|
22 | + } |
|
23 | 23 | |
24 | - /** |
|
25 | - * Get the notification's delivery channels. |
|
26 | - * |
|
27 | - * @param mixed $notifiable |
|
28 | - * @return string[] |
|
29 | - */ |
|
30 | - public function via($notifiable) |
|
31 | - { |
|
32 | - return ['mail']; |
|
33 | - } |
|
24 | + /** |
|
25 | + * Get the notification's delivery channels. |
|
26 | + * |
|
27 | + * @param mixed $notifiable |
|
28 | + * @return string[] |
|
29 | + */ |
|
30 | + public function via($notifiable) |
|
31 | + { |
|
32 | + return ['mail']; |
|
33 | + } |
|
34 | 34 | |
35 | - /** |
|
36 | - * Get the mail representation of the notification. |
|
37 | - * |
|
38 | - * @param mixed $notifiable |
|
39 | - * @return \Illuminate\Notifications\Messages\MailMessage |
|
40 | - */ |
|
41 | - public function toMail($notifiable) |
|
42 | - { |
|
43 | - return (new MailMessage) |
|
44 | - ->subject('Email verification') |
|
45 | - ->line('Email verification') |
|
46 | - ->line('To validate your email click on the button below') |
|
47 | - ->action('Verify your email', config('skeleton.confrim_email_url').'/'.$notifiable->confirmation_code); |
|
48 | - } |
|
35 | + /** |
|
36 | + * Get the mail representation of the notification. |
|
37 | + * |
|
38 | + * @param mixed $notifiable |
|
39 | + * @return \Illuminate\Notifications\Messages\MailMessage |
|
40 | + */ |
|
41 | + public function toMail($notifiable) |
|
42 | + { |
|
43 | + return (new MailMessage) |
|
44 | + ->subject('Email verification') |
|
45 | + ->line('Email verification') |
|
46 | + ->line('To validate your email click on the button below') |
|
47 | + ->action('Verify your email', config('skeleton.confrim_email_url').'/'.$notifiable->confirmation_code); |
|
48 | + } |
|
49 | 49 | } |
@@ -9,43 +9,43 @@ |
||
9 | 9 | |
10 | 10 | class ResetPassword extends Notification implements ShouldQueue |
11 | 11 | { |
12 | - use Queueable; |
|
12 | + use Queueable; |
|
13 | 13 | |
14 | - protected $token; |
|
14 | + protected $token; |
|
15 | 15 | |
16 | - /** |
|
17 | - * Init new object. |
|
18 | - * |
|
19 | - * @return void |
|
20 | - */ |
|
21 | - public function __construct($token) |
|
22 | - { |
|
23 | - $this->token = $token; |
|
24 | - } |
|
16 | + /** |
|
17 | + * Init new object. |
|
18 | + * |
|
19 | + * @return void |
|
20 | + */ |
|
21 | + public function __construct($token) |
|
22 | + { |
|
23 | + $this->token = $token; |
|
24 | + } |
|
25 | 25 | |
26 | - /** |
|
27 | - * Get the notification's delivery channels. |
|
28 | - * |
|
29 | - * @param mixed $notifiable |
|
30 | - * @return string[] |
|
31 | - */ |
|
32 | - public function via($notifiable) |
|
33 | - { |
|
34 | - return ['mail']; |
|
35 | - } |
|
26 | + /** |
|
27 | + * Get the notification's delivery channels. |
|
28 | + * |
|
29 | + * @param mixed $notifiable |
|
30 | + * @return string[] |
|
31 | + */ |
|
32 | + public function via($notifiable) |
|
33 | + { |
|
34 | + return ['mail']; |
|
35 | + } |
|
36 | 36 | |
37 | - /** |
|
38 | - * Get the mail representation of the notification. |
|
39 | - * |
|
40 | - * @param mixed $notifiable |
|
41 | - * @return \Illuminate\Notifications\Messages\MailMessage |
|
42 | - */ |
|
43 | - public function toMail($notifiable) |
|
44 | - { |
|
45 | - return (new MailMessage) |
|
46 | - ->subject('Reset passowrd') |
|
47 | - ->line('Reset passowrd') |
|
48 | - ->line('To reset your password click on the button below') |
|
49 | - ->action('Reset password', config('skeleton.reset_password_url').'/'.$this->token); |
|
50 | - } |
|
37 | + /** |
|
38 | + * Get the mail representation of the notification. |
|
39 | + * |
|
40 | + * @param mixed $notifiable |
|
41 | + * @return \Illuminate\Notifications\Messages\MailMessage |
|
42 | + */ |
|
43 | + public function toMail($notifiable) |
|
44 | + { |
|
45 | + return (new MailMessage) |
|
46 | + ->subject('Reset passowrd') |
|
47 | + ->line('Reset passowrd') |
|
48 | + ->line('To reset your password click on the button below') |
|
49 | + ->action('Reset password', config('skeleton.reset_password_url').'/'.$this->token); |
|
50 | + } |
|
51 | 51 | } |
@@ -5,29 +5,29 @@ |
||
5 | 5 | |
6 | 6 | class SettingRepository extends BaseRepository |
7 | 7 | { |
8 | - /** |
|
9 | - * Init new object. |
|
10 | - * |
|
11 | - * @param Setting $model |
|
12 | - * @return void |
|
13 | - */ |
|
14 | - public function __construct(Setting $model) |
|
15 | - { |
|
16 | - parent::__construct($model); |
|
17 | - } |
|
8 | + /** |
|
9 | + * Init new object. |
|
10 | + * |
|
11 | + * @param Setting $model |
|
12 | + * @return void |
|
13 | + */ |
|
14 | + public function __construct(Setting $model) |
|
15 | + { |
|
16 | + parent::__construct($model); |
|
17 | + } |
|
18 | 18 | |
19 | - /** |
|
20 | - * Save list of settings. |
|
21 | - * |
|
22 | - * @param array $data |
|
23 | - * @return void |
|
24 | - */ |
|
25 | - public function saveMany(array $data) |
|
26 | - { |
|
27 | - \DB::transaction(function () use ($data) { |
|
28 | - foreach ($data as $value) { |
|
29 | - $this->save($value); |
|
30 | - } |
|
31 | - }); |
|
32 | - } |
|
19 | + /** |
|
20 | + * Save list of settings. |
|
21 | + * |
|
22 | + * @param array $data |
|
23 | + * @return void |
|
24 | + */ |
|
25 | + public function saveMany(array $data) |
|
26 | + { |
|
27 | + \DB::transaction(function () use ($data) { |
|
28 | + foreach ($data as $value) { |
|
29 | + $this->save($value); |
|
30 | + } |
|
31 | + }); |
|
32 | + } |
|
33 | 33 | } |
@@ -2,15 +2,15 @@ |
||
2 | 2 | |
3 | 3 | interface BaseFactoryInterface |
4 | 4 | { |
5 | - /** |
|
6 | - * Construct the repository class name based on |
|
7 | - * the method name called, search in the |
|
8 | - * given namespaces for the class and |
|
9 | - * return an instance. |
|
10 | - * |
|
11 | - * @param string $name the called method name |
|
12 | - * @param array $arguments the method arguments |
|
13 | - * @return object |
|
14 | - */ |
|
15 | - public function __call($name, $arguments); |
|
5 | + /** |
|
6 | + * Construct the repository class name based on |
|
7 | + * the method name called, search in the |
|
8 | + * given namespaces for the class and |
|
9 | + * return an instance. |
|
10 | + * |
|
11 | + * @param string $name the called method name |
|
12 | + * @param array $arguments the method arguments |
|
13 | + * @return object |
|
14 | + */ |
|
15 | + public function __call($name, $arguments); |
|
16 | 16 | } |