bootstrap-scss 5.2.0 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. package/README.md +1 -1
  2. package/_accordion.scss +7 -4
  3. package/_alert.scss +71 -71
  4. package/_badge.scss +38 -38
  5. package/_breadcrumb.scss +40 -40
  6. package/_button-group.scss +1 -1
  7. package/_buttons.scss +23 -8
  8. package/_card.scss +234 -234
  9. package/_carousel.scss +229 -229
  10. package/_close.scss +40 -40
  11. package/_containers.scss +41 -41
  12. package/_dropdown.scss +2 -1
  13. package/_forms.scss +9 -9
  14. package/_functions.scss +1 -1
  15. package/_grid.scss +33 -33
  16. package/_helpers.scss +10 -10
  17. package/_list-group.scss +6 -5
  18. package/_maps.scss +54 -54
  19. package/_mixins.scss +43 -43
  20. package/_modal.scss +1 -1
  21. package/_nav.scss +2 -2
  22. package/_navbar.scss +2 -0
  23. package/_offcanvas.scss +5 -4
  24. package/_pagination.scss +1 -1
  25. package/_placeholders.scss +51 -51
  26. package/_popover.scss +5 -5
  27. package/_progress.scss +59 -59
  28. package/_reboot.scss +610 -610
  29. package/_root.scss +73 -73
  30. package/_spinners.scss +85 -85
  31. package/_tables.scss +164 -164
  32. package/_toasts.scss +3 -2
  33. package/_tooltip.scss +120 -120
  34. package/_transitions.scss +27 -27
  35. package/_type.scss +106 -106
  36. package/_utilities.scss +647 -647
  37. package/_variables.scss +17 -16
  38. package/bootstrap-grid.scss +64 -64
  39. package/bootstrap-reboot.scss +9 -9
  40. package/bootstrap-utilities.scss +15 -15
  41. package/bootstrap.scss +51 -51
  42. package/forms/_floating-labels.scss +1 -0
  43. package/forms/_form-check.scss +175 -175
  44. package/forms/_form-control.scss +194 -194
  45. package/forms/_form-range.scss +91 -91
  46. package/forms/_form-select.scss +71 -71
  47. package/forms/_form-text.scss +11 -11
  48. package/forms/_input-group.scss +7 -4
  49. package/forms/_labels.scss +36 -36
  50. package/forms/_validation.scss +12 -12
  51. package/helpers/_clearfix.scss +3 -3
  52. package/helpers/_color-bg.scss +10 -10
  53. package/helpers/_colored-links.scss +12 -12
  54. package/helpers/_position.scss +36 -36
  55. package/helpers/_ratio.scss +26 -26
  56. package/helpers/_stacks.scss +15 -15
  57. package/helpers/_stretched-link.scss +15 -15
  58. package/helpers/_text-truncation.scss +7 -7
  59. package/helpers/_visually-hidden.scss +8 -8
  60. package/helpers/_vr.scss +8 -8
  61. package/mixins/_alert.scss +15 -15
  62. package/mixins/_backdrop.scss +14 -14
  63. package/mixins/_banner.scss +2 -2
  64. package/mixins/_border-radius.scss +78 -78
  65. package/mixins/_box-shadow.scss +18 -18
  66. package/mixins/_breakpoints.scss +127 -127
  67. package/mixins/_buttons.scss +70 -70
  68. package/mixins/_caret.scss +64 -64
  69. package/mixins/_clearfix.scss +9 -9
  70. package/mixins/_color-scheme.scss +7 -7
  71. package/mixins/_container.scss +11 -11
  72. package/mixins/_forms.scss +10 -10
  73. package/mixins/_gradients.scss +47 -47
  74. package/mixins/_grid.scss +151 -151
  75. package/mixins/_image.scss +16 -16
  76. package/mixins/_list-group.scss +24 -24
  77. package/mixins/_lists.scss +7 -7
  78. package/mixins/_pagination.scss +10 -10
  79. package/mixins/_reset-text.scss +17 -17
  80. package/mixins/_table-variants.scss +24 -24
  81. package/mixins/_transition.scss +26 -26
  82. package/mixins/_utilities.scss +1 -1
  83. package/mixins/_visually-hidden.scss +29 -29
  84. package/package.json +1 -1
  85. package/utilities/_api.scss +47 -47
  86. package/vendor/_rfs.scss +354 -354
package/README.md CHANGED
@@ -77,7 +77,7 @@ For simplicity, this project will use the same version numbers as Bootstrap.
77
77
 
78
78
  ## Changelog
79
79
 
80
- https://github.com/twbs/bootstrap/releases/tag/v5.2.0
80
+ https://github.com/twbs/bootstrap/releases/tag/v5.2.1
81
81
 
82
82
  ## Copyright and license
83
83
 
package/_accordion.scss CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  .accordion {
6
6
  // scss-docs-start accordion-css-vars
7
- --#{$prefix}accordion-color: #{color-contrast($accordion-bg)};
7
+ --#{$prefix}accordion-color: #{$accordion-color};
8
8
  --#{$prefix}accordion-bg: #{$accordion-bg};
9
9
  --#{$prefix}accordion-transition: #{$accordion-transition};
10
10
  --#{$prefix}accordion-border-color: #{$accordion-border-color};
@@ -13,7 +13,7 @@
13
13
  --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
14
14
  --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
15
15
  --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
16
- --#{$prefix}accordion-btn-color: #{$accordion-color};
16
+ --#{$prefix}accordion-btn-color: #{$accordion-button-color};
17
17
  --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
18
18
  --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
19
19
  --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
@@ -47,7 +47,7 @@
47
47
  &:not(.collapsed) {
48
48
  color: var(--#{$prefix}accordion-active-color);
49
49
  background-color: var(--#{$prefix}accordion-active-bg);
50
- box-shadow: inset 0 calc(var(--#{$prefix}accordion-border-width) * -1) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
50
+ box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
51
51
 
52
52
  &::after {
53
53
  background-image: var(--#{$prefix}accordion-btn-active-icon);
@@ -140,7 +140,10 @@
140
140
  &:last-child { border-bottom: 0; }
141
141
 
142
142
  .accordion-button {
143
- @include border-radius(0);
143
+ &,
144
+ &.collapsed {
145
+ @include border-radius(0);
146
+ }
144
147
  }
145
148
  }
146
149
  }
package/_alert.scss CHANGED
@@ -1,71 +1,71 @@
1
- //
2
- // Base styles
3
- //
4
-
5
- .alert {
6
- // scss-docs-start alert-css-vars
7
- --#{$prefix}alert-bg: transparent;
8
- --#{$prefix}alert-padding-x: #{$alert-padding-x};
9
- --#{$prefix}alert-padding-y: #{$alert-padding-y};
10
- --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
11
- --#{$prefix}alert-color: inherit;
12
- --#{$prefix}alert-border-color: transparent;
13
- --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14
- --#{$prefix}alert-border-radius: #{$alert-border-radius};
15
- // scss-docs-end alert-css-vars
16
-
17
- position: relative;
18
- padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
19
- margin-bottom: var(--#{$prefix}alert-margin-bottom);
20
- color: var(--#{$prefix}alert-color);
21
- background-color: var(--#{$prefix}alert-bg);
22
- border: var(--#{$prefix}alert-border);
23
- @include border-radius(var(--#{$prefix}alert-border-radius));
24
- }
25
-
26
- // Headings for larger alerts
27
- .alert-heading {
28
- // Specified to prevent conflicts of changing $headings-color
29
- color: inherit;
30
- }
31
-
32
- // Provide class for links that match alerts
33
- .alert-link {
34
- font-weight: $alert-link-font-weight;
35
- }
36
-
37
-
38
- // Dismissible alerts
39
- //
40
- // Expand the right padding and account for the close button's positioning.
41
-
42
- .alert-dismissible {
43
- padding-right: $alert-dismissible-padding-r;
44
-
45
- // Adjust close link position
46
- .btn-close {
47
- position: absolute;
48
- top: 0;
49
- right: 0;
50
- z-index: $stretched-link-z-index + 1;
51
- padding: $alert-padding-y * 1.25 $alert-padding-x;
52
- }
53
- }
54
-
55
-
56
- // scss-docs-start alert-modifiers
57
- // Generate contextual modifier classes for colorizing the alert.
58
-
59
- @each $state, $value in $theme-colors {
60
- $alert-background: shift-color($value, $alert-bg-scale);
61
- $alert-border: shift-color($value, $alert-border-scale);
62
- $alert-color: shift-color($value, $alert-color-scale);
63
-
64
- @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
65
- $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
66
- }
67
- .alert-#{$state} {
68
- @include alert-variant($alert-background, $alert-border, $alert-color);
69
- }
70
- }
71
- // scss-docs-end alert-modifiers
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .alert {
6
+ // scss-docs-start alert-css-vars
7
+ --#{$prefix}alert-bg: transparent;
8
+ --#{$prefix}alert-padding-x: #{$alert-padding-x};
9
+ --#{$prefix}alert-padding-y: #{$alert-padding-y};
10
+ --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
11
+ --#{$prefix}alert-color: inherit;
12
+ --#{$prefix}alert-border-color: transparent;
13
+ --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14
+ --#{$prefix}alert-border-radius: #{$alert-border-radius};
15
+ // scss-docs-end alert-css-vars
16
+
17
+ position: relative;
18
+ padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
19
+ margin-bottom: var(--#{$prefix}alert-margin-bottom);
20
+ color: var(--#{$prefix}alert-color);
21
+ background-color: var(--#{$prefix}alert-bg);
22
+ border: var(--#{$prefix}alert-border);
23
+ @include border-radius(var(--#{$prefix}alert-border-radius));
24
+ }
25
+
26
+ // Headings for larger alerts
27
+ .alert-heading {
28
+ // Specified to prevent conflicts of changing $headings-color
29
+ color: inherit;
30
+ }
31
+
32
+ // Provide class for links that match alerts
33
+ .alert-link {
34
+ font-weight: $alert-link-font-weight;
35
+ }
36
+
37
+
38
+ // Dismissible alerts
39
+ //
40
+ // Expand the right padding and account for the close button's positioning.
41
+
42
+ .alert-dismissible {
43
+ padding-right: $alert-dismissible-padding-r;
44
+
45
+ // Adjust close link position
46
+ .btn-close {
47
+ position: absolute;
48
+ top: 0;
49
+ right: 0;
50
+ z-index: $stretched-link-z-index + 1;
51
+ padding: $alert-padding-y * 1.25 $alert-padding-x;
52
+ }
53
+ }
54
+
55
+
56
+ // scss-docs-start alert-modifiers
57
+ // Generate contextual modifier classes for colorizing the alert.
58
+
59
+ @each $state, $value in $theme-colors {
60
+ $alert-background: shift-color($value, $alert-bg-scale);
61
+ $alert-border: shift-color($value, $alert-border-scale);
62
+ $alert-color: shift-color($value, $alert-color-scale);
63
+
64
+ @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
65
+ $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
66
+ }
67
+ .alert-#{$state} {
68
+ @include alert-variant($alert-background, $alert-border, $alert-color);
69
+ }
70
+ }
71
+ // scss-docs-end alert-modifiers
package/_badge.scss CHANGED
@@ -1,38 +1,38 @@
1
- // Base class
2
- //
3
- // Requires one of the contextual, color modifier classes for `color` and
4
- // `background-color`.
5
-
6
- .badge {
7
- // scss-docs-start badge-css-vars
8
- --#{$prefix}badge-padding-x: #{$badge-padding-x};
9
- --#{$prefix}badge-padding-y: #{$badge-padding-y};
10
- @include rfs($badge-font-size, --#{$prefix}badge-font-size);
11
- --#{$prefix}badge-font-weight: #{$badge-font-weight};
12
- --#{$prefix}badge-color: #{$badge-color};
13
- --#{$prefix}badge-border-radius: #{$badge-border-radius};
14
- // scss-docs-end badge-css-vars
15
-
16
- display: inline-block;
17
- padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
18
- @include font-size(var(--#{$prefix}badge-font-size));
19
- font-weight: var(--#{$prefix}badge-font-weight);
20
- line-height: 1;
21
- color: var(--#{$prefix}badge-color);
22
- text-align: center;
23
- white-space: nowrap;
24
- vertical-align: baseline;
25
- @include border-radius(var(--#{$prefix}badge-border-radius));
26
- @include gradient-bg();
27
-
28
- // Empty badges collapse automatically
29
- &:empty {
30
- display: none;
31
- }
32
- }
33
-
34
- // Quick fix for badges in buttons
35
- .btn .badge {
36
- position: relative;
37
- top: -1px;
38
- }
1
+ // Base class
2
+ //
3
+ // Requires one of the contextual, color modifier classes for `color` and
4
+ // `background-color`.
5
+
6
+ .badge {
7
+ // scss-docs-start badge-css-vars
8
+ --#{$prefix}badge-padding-x: #{$badge-padding-x};
9
+ --#{$prefix}badge-padding-y: #{$badge-padding-y};
10
+ @include rfs($badge-font-size, --#{$prefix}badge-font-size);
11
+ --#{$prefix}badge-font-weight: #{$badge-font-weight};
12
+ --#{$prefix}badge-color: #{$badge-color};
13
+ --#{$prefix}badge-border-radius: #{$badge-border-radius};
14
+ // scss-docs-end badge-css-vars
15
+
16
+ display: inline-block;
17
+ padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
18
+ @include font-size(var(--#{$prefix}badge-font-size));
19
+ font-weight: var(--#{$prefix}badge-font-weight);
20
+ line-height: 1;
21
+ color: var(--#{$prefix}badge-color);
22
+ text-align: center;
23
+ white-space: nowrap;
24
+ vertical-align: baseline;
25
+ @include border-radius(var(--#{$prefix}badge-border-radius));
26
+ @include gradient-bg();
27
+
28
+ // Empty badges collapse automatically
29
+ &:empty {
30
+ display: none;
31
+ }
32
+ }
33
+
34
+ // Quick fix for badges in buttons
35
+ .btn .badge {
36
+ position: relative;
37
+ top: -1px;
38
+ }
package/_breadcrumb.scss CHANGED
@@ -1,40 +1,40 @@
1
- .breadcrumb {
2
- // scss-docs-start breadcrumb-css-vars
3
- --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
4
- --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
5
- --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
6
- @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
7
- --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
8
- --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
9
- --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
10
- --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
11
- --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
12
- // scss-docs-end breadcrumb-css-vars
13
-
14
- display: flex;
15
- flex-wrap: wrap;
16
- padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
17
- margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
18
- @include font-size(var(--#{$prefix}breadcrumb-font-size));
19
- list-style: none;
20
- background-color: var(--#{$prefix}breadcrumb-bg);
21
- @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
22
- }
23
-
24
- .breadcrumb-item {
25
- // The separator between breadcrumbs (by default, a forward-slash: "/")
26
- + .breadcrumb-item {
27
- padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
28
-
29
- &::before {
30
- float: left; // Suppress inline spacings and underlining of the separator
31
- padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
32
- color: var(--#{$prefix}breadcrumb-divider-color);
33
- content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
34
- }
35
- }
36
-
37
- &.active {
38
- color: var(--#{$prefix}breadcrumb-item-active-color);
39
- }
40
- }
1
+ .breadcrumb {
2
+ // scss-docs-start breadcrumb-css-vars
3
+ --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
4
+ --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
5
+ --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
6
+ @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
7
+ --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
8
+ --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
9
+ --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
10
+ --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
11
+ --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
12
+ // scss-docs-end breadcrumb-css-vars
13
+
14
+ display: flex;
15
+ flex-wrap: wrap;
16
+ padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
17
+ margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
18
+ @include font-size(var(--#{$prefix}breadcrumb-font-size));
19
+ list-style: none;
20
+ background-color: var(--#{$prefix}breadcrumb-bg);
21
+ @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
22
+ }
23
+
24
+ .breadcrumb-item {
25
+ // The separator between breadcrumbs (by default, a forward-slash: "/")
26
+ + .breadcrumb-item {
27
+ padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
28
+
29
+ &::before {
30
+ float: left; // Suppress inline spacings and underlining of the separator
31
+ padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
32
+ color: var(--#{$prefix}breadcrumb-divider-color);
33
+ content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
34
+ }
35
+ }
36
+
37
+ &.active {
38
+ color: var(--#{$prefix}breadcrumb-item-active-color);
39
+ }
40
+ }
@@ -37,7 +37,7 @@
37
37
  @include border-radius($btn-border-radius);
38
38
 
39
39
  // Prevent double borders when buttons are next to each other
40
- > .btn:not(:first-child),
40
+ > :not(.btn-check:first-child) + .btn,
41
41
  > .btn-group:not(:first-child) {
42
42
  margin-left: -$btn-border-width;
43
43
  }
package/_buttons.scss CHANGED
@@ -15,6 +15,7 @@
15
15
  --#{$prefix}btn-border-width: #{$btn-border-width};
16
16
  --#{$prefix}btn-border-color: transparent;
17
17
  --#{$prefix}btn-border-radius: #{$btn-border-radius};
18
+ --#{$prefix}btn-hover-border-color: transparent;
18
19
  --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
19
20
  --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
20
21
  --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
@@ -39,15 +40,15 @@
39
40
  @include box-shadow(var(--#{$prefix}btn-box-shadow));
40
41
  @include transition($btn-transition);
41
42
 
42
- &:hover {
43
+ :not(.btn-check) + &:hover,
44
+ &:first-child:hover {
43
45
  color: var(--#{$prefix}btn-hover-color);
44
46
  text-decoration: if($link-hover-decoration == underline, none, null);
45
47
  background-color: var(--#{$prefix}btn-hover-bg);
46
48
  border-color: var(--#{$prefix}btn-hover-border-color);
47
49
  }
48
50
 
49
- .btn-check:focus + &,
50
- &:focus {
51
+ &:focus-visible {
51
52
  color: var(--#{$prefix}btn-hover-color);
52
53
  @include gradient-bg(var(--#{$prefix}btn-hover-bg));
53
54
  border-color: var(--#{$prefix}btn-hover-border-color);
@@ -60,9 +61,20 @@
60
61
  }
61
62
  }
62
63
 
64
+ .btn-check:focus-visible + & {
65
+ border-color: var(--#{$prefix}btn-hover-border-color);
66
+ outline: 0;
67
+ // Avoid using mixin so we can pass custom focus shadow properly
68
+ @if $enable-shadows {
69
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
70
+ } @else {
71
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
72
+ }
73
+ }
74
+
63
75
  .btn-check:checked + &,
64
- .btn-check:active + &,
65
- &:active,
76
+ :not(.btn-check) + &:active,
77
+ &:first-child:active,
66
78
  &.active,
67
79
  &.show {
68
80
  color: var(--#{$prefix}btn-active-color);
@@ -72,7 +84,7 @@
72
84
  border-color: var(--#{$prefix}btn-active-border-color);
73
85
  @include box-shadow(var(--#{$prefix}btn-active-shadow));
74
86
 
75
- &:focus {
87
+ &:focus-visible {
76
88
  // Avoid using mixin so we can pass custom focus shadow properly
77
89
  @if $enable-shadows {
78
90
  box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
@@ -155,13 +167,16 @@
155
167
  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};
156
168
 
157
169
  text-decoration: $link-decoration;
170
+ @if $enable-gradients {
171
+ background-image: none;
172
+ }
158
173
 
159
174
  &:hover,
160
- &:focus {
175
+ &:focus-visible {
161
176
  text-decoration: $link-hover-decoration;
162
177
  }
163
178
 
164
- &:focus {
179
+ &:focus-visible {
165
180
  color: var(--#{$prefix}btn-color);
166
181
  }
167
182