twbs_sass_rails 6.0.0 → 7.0.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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/README.md +1 -1
  4. data/lib/twbs_sass_rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/twbs/bootstrap/affix.js +7 -5
  6. data/vendor/assets/javascripts/twbs/bootstrap/alert.js +6 -5
  7. data/vendor/assets/javascripts/twbs/bootstrap/button.js +4 -4
  8. data/vendor/assets/javascripts/twbs/bootstrap/carousel.js +16 -7
  9. data/vendor/assets/javascripts/twbs/bootstrap/collapse.js +6 -6
  10. data/vendor/assets/javascripts/twbs/bootstrap/dropdown.js +5 -5
  11. data/vendor/assets/javascripts/twbs/bootstrap/modal.js +43 -24
  12. data/vendor/assets/javascripts/twbs/bootstrap/popover.js +6 -6
  13. data/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js +4 -4
  14. data/vendor/assets/javascripts/twbs/bootstrap/tab.js +10 -10
  15. data/vendor/assets/javascripts/twbs/bootstrap/tooltip.js +6 -6
  16. data/vendor/assets/javascripts/twbs/bootstrap/transition.js +5 -5
  17. data/vendor/assets/javascripts/twbs/bootstrap.js +3 -3
  18. data/vendor/assets/stylesheets/fontawesome/_path.scss +7 -7
  19. data/vendor/assets/stylesheets/twbs/_bootstrap.scss +2 -2
  20. data/vendor/assets/stylesheets/twbs/bootstrap/_alerts.scss +3 -3
  21. data/vendor/assets/stylesheets/twbs/bootstrap/_badges.scss +3 -3
  22. data/vendor/assets/stylesheets/twbs/bootstrap/_breadcrumbs.scss +2 -2
  23. data/vendor/assets/stylesheets/twbs/bootstrap/_button-groups.scss +5 -5
  24. data/vendor/assets/stylesheets/twbs/bootstrap/_buttons.scss +4 -4
  25. data/vendor/assets/stylesheets/twbs/bootstrap/_carousel.scss +26 -25
  26. data/vendor/assets/stylesheets/twbs/bootstrap/_close.scss +1 -0
  27. data/vendor/assets/stylesheets/twbs/bootstrap/_code.scss +3 -3
  28. data/vendor/assets/stylesheets/twbs/bootstrap/_component-animations.scss +1 -0
  29. data/vendor/assets/stylesheets/twbs/bootstrap/_dropdowns.scss +20 -23
  30. data/vendor/assets/stylesheets/twbs/bootstrap/_forms.scss +47 -57
  31. data/vendor/assets/stylesheets/twbs/bootstrap/_glyphicons.scss +9 -9
  32. data/vendor/assets/stylesheets/twbs/bootstrap/_grid.scss +10 -0
  33. data/vendor/assets/stylesheets/twbs/bootstrap/_input-groups.scss +2 -2
  34. data/vendor/assets/stylesheets/twbs/bootstrap/_jumbotron.scss +5 -5
  35. data/vendor/assets/stylesheets/twbs/bootstrap/_labels.scss +1 -1
  36. data/vendor/assets/stylesheets/twbs/bootstrap/_list-group.scss +30 -32
  37. data/vendor/assets/stylesheets/twbs/bootstrap/_media.scss +1 -1
  38. data/vendor/assets/stylesheets/twbs/bootstrap/_modals.scss +6 -6
  39. data/vendor/assets/stylesheets/twbs/bootstrap/_navbar.scss +75 -81
  40. data/vendor/assets/stylesheets/twbs/bootstrap/_navs.scss +4 -4
  41. data/vendor/assets/stylesheets/twbs/bootstrap/_normalize.scss +5 -2
  42. data/vendor/assets/stylesheets/twbs/bootstrap/_pager.scss +2 -2
  43. data/vendor/assets/stylesheets/twbs/bootstrap/_pagination.scss +12 -15
  44. data/vendor/assets/stylesheets/twbs/bootstrap/_panels.scss +4 -4
  45. data/vendor/assets/stylesheets/twbs/bootstrap/_popovers.scss +47 -52
  46. data/vendor/assets/stylesheets/twbs/bootstrap/_print.scss +90 -92
  47. data/vendor/assets/stylesheets/twbs/bootstrap/_progress-bars.scss +3 -3
  48. data/vendor/assets/stylesheets/twbs/bootstrap/_responsive-embed.scss +2 -2
  49. data/vendor/assets/stylesheets/twbs/bootstrap/_responsive-utilities.scss +3 -3
  50. data/vendor/assets/stylesheets/twbs/bootstrap/_scaffolding.scss +7 -7
  51. data/vendor/assets/stylesheets/twbs/bootstrap/_tables.scss +23 -23
  52. data/vendor/assets/stylesheets/twbs/bootstrap/_theme.scss +21 -17
  53. data/vendor/assets/stylesheets/twbs/bootstrap/_thumbnails.scss +1 -1
  54. data/vendor/assets/stylesheets/twbs/bootstrap/_tooltip.scss +38 -27
  55. data/vendor/assets/stylesheets/twbs/bootstrap/_type.scss +10 -10
  56. data/vendor/assets/stylesheets/twbs/bootstrap/_variables.scss +6 -6
  57. data/vendor/assets/stylesheets/twbs/bootstrap/_wells.scss +2 -2
  58. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_alerts.scss +2 -1
  59. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_border-radius.scss +4 -4
  60. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_buttons.scss +6 -10
  61. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_center-block.scss +1 -1
  62. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_clearfix.scss +1 -1
  63. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_forms.scss +4 -4
  64. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_gradients.scss +6 -8
  65. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_grid-framework.scss +1 -1
  66. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_grid.scss +7 -7
  67. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_image.scss +5 -10
  68. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_opacity.scss +2 -3
  69. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_reset-text.scss +4 -4
  70. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_resize.scss +1 -1
  71. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_responsive-visibility.scss +0 -4
  72. data/vendor/assets/stylesheets/twbs/bootstrap/mixins/_vendor-prefixes.scss +1 -1
  73. metadata +8 -8
@@ -10,10 +10,10 @@
10
10
  height: 0;
11
11
  margin-left: 2px;
12
12
  vertical-align: middle;
13
- border-top: $caret-width-base dashed;
14
- border-top: $caret-width-base solid \9; // IE8
13
+ border-top: $caret-width-base dashed;
14
+ border-top: $caret-width-base solid \9; // IE8
15
15
  border-right: $caret-width-base solid transparent;
16
- border-left: $caret-width-base solid transparent;
16
+ border-left: $caret-width-base solid transparent;
17
17
  }
18
18
 
19
19
  // The dropdown wrapper (div)
@@ -38,15 +38,15 @@
38
38
  min-width: 160px;
39
39
  padding: 5px 0;
40
40
  margin: 2px 0 0; // override default ul
41
- list-style: none;
42
41
  font-size: $font-size-base;
43
42
  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
43
+ list-style: none;
44
44
  background-color: $dropdown-bg;
45
+ background-clip: padding-box;
45
46
  border: 1px solid $dropdown-fallback-border; // IE8 fallback
46
47
  border: 1px solid $dropdown-border;
47
48
  border-radius: $border-radius-base;
48
- @include box-shadow(0 6px 12px rgba(0,0,0,.175));
49
- background-clip: padding-box;
49
+ @include box-shadow(0 6px 12px rgba(0, 0, 0, .175));
50
50
 
51
51
  // Aligns the dropdown menu to right
52
52
  //
@@ -66,20 +66,17 @@
66
66
  display: block;
67
67
  padding: 3px 20px;
68
68
  clear: both;
69
- font-weight: normal;
69
+ font-weight: 400;
70
70
  line-height: $line-height-base;
71
71
  color: $dropdown-link-color;
72
72
  white-space: nowrap; // prevent links from randomly breaking onto new lines
73
- }
74
- }
75
73
 
76
- // Hover/Focus state
77
- .dropdown-menu > li > a {
78
- &:hover,
79
- &:focus {
80
- text-decoration: none;
81
- color: $dropdown-link-hover-color;
82
- background-color: $dropdown-link-hover-bg;
74
+ &:hover,
75
+ &:focus {
76
+ color: $dropdown-link-hover-color;
77
+ text-decoration: none;
78
+ background-color: $dropdown-link-hover-bg;
79
+ }
83
80
  }
84
81
  }
85
82
 
@@ -90,8 +87,8 @@
90
87
  &:focus {
91
88
  color: $dropdown-link-active-color;
92
89
  text-decoration: none;
93
- outline: 0;
94
90
  background-color: $dropdown-link-active-bg;
91
+ outline: 0;
95
92
  }
96
93
  }
97
94
 
@@ -110,10 +107,10 @@
110
107
  &:hover,
111
108
  &:focus {
112
109
  text-decoration: none;
110
+ cursor: $cursor-disabled;
113
111
  background-color: transparent;
114
112
  background-image: none; // Remove CSS gradient
115
113
  @include reset-filter;
116
- cursor: $cursor-disabled;
117
114
  }
118
115
  }
119
116
 
@@ -135,8 +132,8 @@
135
132
  // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
136
133
  // menu with the parent.
137
134
  .dropdown-menu-right {
138
- left: auto; // Reset the default from `.dropdown-menu`
139
135
  right: 0;
136
+ left: auto; // Reset the default from `.dropdown-menu`
140
137
  }
141
138
  // With v3, we enabled auto-flipping if you have a dropdown within a right
142
139
  // aligned nav component. To enable the undoing of that, we provide an override
@@ -145,8 +142,8 @@
145
142
  // This is only for left-aligning a dropdown menu within a `.navbar-right` or
146
143
  // `.pull-right` nav component.
147
144
  .dropdown-menu-left {
148
- left: 0;
149
145
  right: auto;
146
+ left: 0;
150
147
  }
151
148
 
152
149
  // Dropdown section headers
@@ -162,10 +159,10 @@
162
159
  // Backdrop to catch body clicks on mobile, etc.
163
160
  .dropdown-backdrop {
164
161
  position: fixed;
165
- left: 0;
162
+ top: 0;
166
163
  right: 0;
167
164
  bottom: 0;
168
- top: 0;
165
+ left: 0;
169
166
  z-index: ($zindex-dropdown - 10);
170
167
  }
171
168
 
@@ -184,10 +181,10 @@
184
181
  .navbar-fixed-bottom .dropdown {
185
182
  // Reverse the caret
186
183
  .caret {
184
+ content: "";
187
185
  border-top: 0;
188
186
  border-bottom: $caret-width-base dashed;
189
187
  border-bottom: $caret-width-base solid \9; // IE8
190
- content: "";
191
188
  }
192
189
  // Different positioning for bottom up menu
193
190
  .dropdown-menu {
@@ -8,13 +8,13 @@
8
8
  // Restyle and baseline non-control form elements.
9
9
 
10
10
  fieldset {
11
- padding: 0;
12
- margin: 0;
13
- border: 0;
14
11
  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
15
12
  // so we reset that to ensure it behaves more like a standard block element.
16
13
  // See https://github.com/twbs/bootstrap/issues/12359.
17
14
  min-width: 0;
15
+ padding: 0;
16
+ margin: 0;
17
+ border: 0;
18
18
  }
19
19
 
20
20
  legend {
@@ -33,7 +33,7 @@ label {
33
33
  display: inline-block;
34
34
  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
35
35
  margin-bottom: 5px;
36
- font-weight: bold;
36
+ font-weight: 700;
37
37
  }
38
38
 
39
39
 
@@ -43,9 +43,18 @@ label {
43
43
  // is required to ensure optimum display with or without those classes to better
44
44
  // address browser inconsistencies.
45
45
 
46
- // Override content-box in Normalize (* isn't specific enough)
47
46
  input[type="search"] {
47
+ // Override content-box in Normalize (* isn't specific enough)
48
48
  @include box-sizing(border-box);
49
+
50
+ // Search inputs in iOS
51
+ //
52
+ // This overrides the extra rounded corners on search inputs in iOS so that our
53
+ // `.form-control` class can properly style them. Note that this cannot simply
54
+ // be added to `.form-control` as it's not specific enough. For details, see
55
+ // https://github.com/twbs/bootstrap/issues/11586.
56
+ -webkit-appearance: none;
57
+ appearance: none;
49
58
  }
50
59
 
51
60
  // Position radios and checkboxes better
@@ -54,6 +63,16 @@ input[type="checkbox"] {
54
63
  margin: 4px 0 0;
55
64
  margin-top: 1px \9; // IE8-9
56
65
  line-height: normal;
66
+
67
+ // Apply same disabled cursor tweak as for inputs
68
+ // Some special care is needed because <label>s don't inherit their parent's `cursor`.
69
+ //
70
+ // Note: Neither radios nor checkboxes can be readonly.
71
+ &[disabled],
72
+ &.disabled,
73
+ fieldset[disabled] & {
74
+ cursor: $cursor-disabled;
75
+ }
57
76
  }
58
77
 
59
78
  input[type="file"] {
@@ -123,7 +142,7 @@ output {
123
142
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
124
143
  border: 1px solid $input-border;
125
144
  border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
126
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
145
+ @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));
127
146
  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
128
147
 
129
148
  // Customize the `:focus` state to imitate native WebKit styles.
@@ -134,8 +153,8 @@ output {
134
153
 
135
154
  // Unstyle the caret on `<select>`s in IE10+.
136
155
  &::-ms-expand {
137
- border: 0;
138
156
  background-color: transparent;
157
+ border: 0;
139
158
  }
140
159
 
141
160
  // Disabled and read-only inputs
@@ -164,18 +183,6 @@ textarea.form-control {
164
183
  }
165
184
 
166
185
 
167
- // Search inputs in iOS
168
- //
169
- // This overrides the extra rounded corners on search inputs in iOS so that our
170
- // `.form-control` class can properly style them. Note that this cannot simply
171
- // be added to `.form-control` as it's not specific enough. For details, see
172
- // https://github.com/twbs/bootstrap/issues/11586.
173
-
174
- input[type="search"] {
175
- -webkit-appearance: none;
176
- }
177
-
178
-
179
186
  // Special styles for iOS temporal inputs
180
187
  //
181
188
  // In Mobile Safari, setting `display: block` on temporal inputs causes the
@@ -228,11 +235,19 @@ input[type="search"] {
228
235
  margin-top: 10px;
229
236
  margin-bottom: 10px;
230
237
 
238
+ // These are used on elements with <label> descendants
239
+ &.disabled,
240
+ fieldset[disabled] & {
241
+ label {
242
+ cursor: $cursor-disabled;
243
+ }
244
+ }
245
+
231
246
  label {
232
247
  min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
233
248
  padding-left: 20px;
234
249
  margin-bottom: 0;
235
- font-weight: normal;
250
+ font-weight: 400;
236
251
  cursor: pointer;
237
252
  }
238
253
  }
@@ -241,8 +256,8 @@ input[type="search"] {
241
256
  .checkbox input[type="checkbox"],
242
257
  .checkbox-inline input[type="checkbox"] {
243
258
  position: absolute;
244
- margin-left: -20px;
245
259
  margin-top: 4px \9;
260
+ margin-left: -20px;
246
261
  }
247
262
 
248
263
  .radio + .radio,
@@ -257,45 +272,20 @@ input[type="search"] {
257
272
  display: inline-block;
258
273
  padding-left: 20px;
259
274
  margin-bottom: 0;
275
+ font-weight: 400;
260
276
  vertical-align: middle;
261
- font-weight: normal;
262
277
  cursor: pointer;
263
- }
264
- .radio-inline + .radio-inline,
265
- .checkbox-inline + .checkbox-inline {
266
- margin-top: 0;
267
- margin-left: 10px; // space out consecutive inline controls
268
- }
269
278
 
270
- // Apply same disabled cursor tweak as for inputs
271
- // Some special care is needed because <label>s don't inherit their parent's `cursor`.
272
- //
273
- // Note: Neither radios nor checkboxes can be readonly.
274
- input[type="radio"],
275
- input[type="checkbox"] {
276
- &[disabled],
277
- &.disabled,
278
- fieldset[disabled] & {
279
- cursor: $cursor-disabled;
280
- }
281
- }
282
- // These classes are used directly on <label>s
283
- .radio-inline,
284
- .checkbox-inline {
279
+ // These are used directly on <label>s
285
280
  &.disabled,
286
281
  fieldset[disabled] & {
287
282
  cursor: $cursor-disabled;
288
283
  }
289
284
  }
290
- // These classes are used on elements with <label> descendants
291
- .radio,
292
- .checkbox {
293
- &.disabled,
294
- fieldset[disabled] & {
295
- label {
296
- cursor: $cursor-disabled;
297
- }
298
- }
285
+ .radio-inline + .radio-inline,
286
+ .checkbox-inline + .checkbox-inline {
287
+ margin-top: 0;
288
+ margin-left: 10px; // space out consecutive inline controls
299
289
  }
300
290
 
301
291
 
@@ -305,17 +295,17 @@ input[type="checkbox"] {
305
295
  // a horizontal form layout.
306
296
 
307
297
  .form-control-static {
298
+ min-height: ($line-height-computed + $font-size-base);
308
299
  // Size it appropriately next to real form controls
309
300
  padding-top: ($padding-base-vertical + 1);
310
301
  padding-bottom: ($padding-base-vertical + 1);
311
302
  // Remove default margin from `p`
312
303
  margin-bottom: 0;
313
- min-height: ($line-height-computed + $font-size-base);
314
304
 
315
305
  &.input-lg,
316
306
  &.input-sm {
317
- padding-left: 0;
318
307
  padding-right: 0;
308
+ padding-left: 0;
319
309
  }
320
310
  }
321
311
 
@@ -560,9 +550,9 @@ input[type="checkbox"] {
560
550
  .checkbox,
561
551
  .radio-inline,
562
552
  .checkbox-inline {
553
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
563
554
  margin-top: 0;
564
555
  margin-bottom: 0;
565
- padding-top: ($padding-base-vertical + 1); // Default padding plus a border
566
556
  }
567
557
  // Account for padding we're adding to ensure the alignment and of help text
568
558
  // and other content below items
@@ -580,9 +570,9 @@ input[type="checkbox"] {
580
570
  // labels on narrow viewports stack the same as a default form example.
581
571
  @media (min-width: $screen-sm-min) {
582
572
  .control-label {
583
- text-align: right;
584
- margin-bottom: 0;
585
573
  padding-top: ($padding-base-vertical + 1); // Default padding plus a border
574
+ margin-bottom: 0;
575
+ text-align: right;
586
576
  }
587
577
  }
588
578
 
@@ -10,13 +10,13 @@
10
10
  @at-root {
11
11
  // Import the fonts
12
12
  @font-face {
13
- font-family: 'Glyphicons Halflings';
14
- src: font-url('#{$icon-font-name}.eot');
15
- src: font-url('#{$icon-font-name}.eot?#iefix') format('embedded-opentype'),
16
- font-url('#{$icon-font-name}.woff2') format('woff2'),
17
- font-url('#{$icon-font-name}.woff') format('woff'),
18
- font-url('#{$icon-font-name}.ttf') format('truetype'),
19
- font-url('#{$icon-font-name}.svg##{$icon-font-svg-id}') format('svg');
13
+ font-family: "Glyphicons Halflings";
14
+ src: font-url("#{$icon-font-name}.eot");
15
+ src: font-url("#{$icon-font-name}.eot?#iefix") format("embedded-opentype"),
16
+ font-url("#{$icon-font-name}.woff2") format("woff2"),
17
+ font-url("#{$icon-font-name}.woff") format("woff"),
18
+ font-url("#{$icon-font-name}.ttf") format("truetype"),
19
+ font-url("#{$icon-font-name}.svg##{$icon-font-svg-id}") format("svg");
20
20
  }
21
21
  }
22
22
 
@@ -25,9 +25,9 @@
25
25
  position: relative;
26
26
  top: 1px;
27
27
  display: inline-block;
28
- font-family: 'Glyphicons Halflings';
28
+ font-family: "Glyphicons Halflings";
29
29
  font-style: normal;
30
- font-weight: normal;
30
+ font-weight: 400;
31
31
  line-height: 1;
32
32
  -webkit-font-smoothing: antialiased;
33
33
  -moz-osx-font-smoothing: grayscale;
@@ -40,6 +40,16 @@
40
40
  @include make-row;
41
41
  }
42
42
 
43
+ .row-no-gutters {
44
+ margin-right: 0;
45
+ margin-left: 0;
46
+
47
+ [class*="col-"] {
48
+ padding-right: 0;
49
+ padding-left: 0;
50
+ }
51
+ }
52
+
43
53
 
44
54
  // Columns
45
55
  //
@@ -12,8 +12,8 @@
12
12
  // Undo padding and float of grid classes
13
13
  &[class*="col-"] {
14
14
  float: none;
15
- padding-left: 0;
16
15
  padding-right: 0;
16
+ padding-left: 0;
17
17
  }
18
18
 
19
19
  .form-control {
@@ -77,7 +77,7 @@
77
77
  .input-group-addon {
78
78
  padding: $padding-base-vertical $padding-base-horizontal;
79
79
  font-size: $font-size-base;
80
- font-weight: normal;
80
+ font-weight: 400;
81
81
  line-height: 1;
82
82
  color: $input-color;
83
83
  text-align: center;
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
  .jumbotron {
7
- padding-top: $jumbotron-padding;
7
+ padding-top: $jumbotron-padding;
8
8
  padding-bottom: $jumbotron-padding;
9
9
  margin-bottom: $jumbotron-padding;
10
10
  color: $jumbotron-color;
@@ -27,9 +27,9 @@
27
27
 
28
28
  .container &,
29
29
  .container-fluid & {
30
- border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
31
- padding-left: ($grid-gutter-width / 2);
32
30
  padding-right: ($grid-gutter-width / 2);
31
+ padding-left: ($grid-gutter-width / 2);
32
+ border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
33
33
  }
34
34
 
35
35
  .container {
@@ -37,13 +37,13 @@
37
37
  }
38
38
 
39
39
  @media screen and (min-width: $screen-sm-min) {
40
- padding-top: ($jumbotron-padding * 1.6);
40
+ padding-top: ($jumbotron-padding * 1.6);
41
41
  padding-bottom: ($jumbotron-padding * 1.6);
42
42
 
43
43
  .container &,
44
44
  .container-fluid & {
45
- padding-left: ($jumbotron-padding * 2);
46
45
  padding-right: ($jumbotron-padding * 2);
46
+ padding-left: ($jumbotron-padding * 2);
47
47
  }
48
48
 
49
49
  h1,