titon-toolkit 1.3.2 → 1.4.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.
- checksums.yaml +4 -4
- data/changelog.md +70 -56
- data/license.md +16 -13
- data/readme.md +1 -1
- data/roadmap.md +29 -13
- data/scss/toolkit.scss +5 -2
- data/scss/toolkit/_common.scss +39 -21
- data/scss/toolkit/components/accordion.scss +2 -2
- data/scss/toolkit/components/blackout.scss +2 -2
- data/scss/toolkit/components/breadcrumb.scss +2 -2
- data/scss/toolkit/components/button-group.scss +2 -2
- data/scss/toolkit/components/button.scss +2 -2
- data/scss/toolkit/components/carousel.scss +3 -3
- data/scss/toolkit/components/divider.scss +46 -0
- data/scss/toolkit/components/drop.scss +3 -3
- data/scss/toolkit/components/flyout.scss +3 -3
- data/scss/toolkit/components/grid.scss +2 -2
- data/scss/toolkit/components/icon.scss +2 -2
- data/scss/toolkit/components/input-group.scss +2 -2
- data/scss/toolkit/components/input.scss +2 -2
- data/scss/toolkit/components/label.scss +2 -2
- data/scss/toolkit/components/lazy-load.scss +2 -2
- data/scss/toolkit/components/loader.scss +2 -2
- data/scss/toolkit/components/mask.scss +8 -5
- data/scss/toolkit/components/matrix.scss +2 -2
- data/scss/toolkit/components/modal.scss +21 -97
- data/scss/toolkit/components/notice.scss +2 -2
- data/scss/toolkit/components/off-canvas.scss +145 -0
- data/scss/toolkit/components/pagination.scss +2 -2
- data/scss/toolkit/components/pin.scss +2 -2
- data/scss/toolkit/components/popover.scss +2 -2
- data/scss/toolkit/components/progress.scss +2 -2
- data/scss/toolkit/components/showcase.scss +19 -38
- data/scss/toolkit/components/step.scss +2 -2
- data/scss/toolkit/components/switch.scss +2 -2
- data/scss/toolkit/components/table.scss +2 -2
- data/scss/toolkit/components/tabs.scss +2 -2
- data/scss/toolkit/components/toast.scss +129 -0
- data/scss/toolkit/components/tooltip.scss +3 -3
- data/scss/toolkit/components/type-ahead.scss +3 -3
- data/scss/toolkit/effects/oval.scss +2 -2
- data/scss/toolkit/effects/pill.scss +2 -2
- data/scss/toolkit/effects/skew.scss +2 -2
- data/scss/toolkit/effects/visual.scss +2 -2
- data/scss/toolkit/layout/base.scss +24 -2
- data/scss/toolkit/layout/code.scss +3 -2
- data/scss/toolkit/layout/form.scss +2 -2
- data/scss/toolkit/layout/responsive.scss +2 -2
- data/scss/toolkit/layout/typography.scss +2 -2
- data/scss/toolkit/themes/demo.scss +17 -14
- data/version.md +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7acf78b6a86370cfa956707f66d5ae3904d1e8b
|
4
|
+
data.tar.gz: e708ce5bddbdfe2f928e3523abaf996e37b9e399
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f61eb435a1884c57cb8d1dc312101e2c21a34d68a04f2c28ff5b38cf98d9b5973f9e1cd0fc0396b56f82c35b8ca845f0fdea8d6c0d0a9752622cac2f80def8
|
7
|
+
data.tar.gz: 7c0ef03b143f15bf79b01161e80e44fc9572cd3b09bdd9649bc9912d3a21d2d15a9da6277a4d80f4b07560dba68afdf983a0c9dc73ac921a7221efd0c58d3c9b
|
data/changelog.md
CHANGED
@@ -2,64 +2,78 @@
|
|
2
2
|
|
3
3
|
Older versions can be found in the documentation changelogs.
|
4
4
|
|
5
|
-
## 1.
|
6
|
-
|
7
|
-
|
8
|
-
* Reset browser specific styles, specifically in iOS
|
9
|
-
* Modal
|
10
|
-
* Added mobile specific styles that span the width of the viewport
|
11
|
-
* TypeAhead
|
12
|
-
* Turned off `autocapitalize`, `autocorrect`, and `spellcheck` on the input field
|
13
|
-
|
14
|
-
## 1.3.1 ##
|
15
|
-
* Updated `event.target` to `event.currentTarget` where applicable
|
16
|
-
|
17
|
-
## 1.3.0 ##
|
18
|
-
This minor release includes 2 new components, automatic ARIA support for all applicable components,
|
19
|
-
replacing Compass with autoprefixer, removal of state prefixing, and many more bug fixes and improvements.
|
5
|
+
## 1.4.0 ##
|
6
|
+
This minor release includes 3 new components, a new `destroy()` method,
|
7
|
+
a cleanup of element and event options, expanded documentation, and a handful of optimization improvements.
|
20
8
|
|
21
|
-
*
|
22
|
-
*
|
23
|
-
* Added
|
24
|
-
* Added
|
25
|
-
* Added
|
26
|
-
*
|
27
|
-
*
|
28
|
-
*
|
29
|
-
*
|
30
|
-
*
|
31
|
-
*
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
9
|
+
* Usage license has been updated to BSD-3 from BSD-2
|
10
|
+
* MooTools support is slowly being phased out and new components are not supported
|
11
|
+
* Added new Divider component for separating content
|
12
|
+
* Added new Off Canvas component for displaying sidebars outside the viewport
|
13
|
+
* Added new Toast component for notifying users with timed messages
|
14
|
+
* Added `.no-transition` class to disable transitions
|
15
|
+
* Added `.sr-only` class for screen readers
|
16
|
+
* Added `suppression` setting for swipe events
|
17
|
+
* Fixed a bug with `swipe` events where select dropdowns would stop working
|
18
|
+
* Fixed a bug with `swipe` events where page scrolling gets disabled
|
19
|
+
* Fixed a bug with certain fade animations
|
20
|
+
* Fixed a bug where certain Sass variables were not customizable
|
21
|
+
* Removed `$shape-square-class` Sass variable
|
22
|
+
* Removed `*Element` options (CSS classes are now hardcoded)
|
23
|
+
* Removed `*Event` options (CSS classes are now hardcoded)
|
36
24
|
* Toolkit
|
37
|
-
* Added `
|
38
|
-
* Added `
|
39
|
-
*
|
40
|
-
*
|
41
|
-
* Renamed `Toolkit.createComponent()` to `Toolkit.create()`
|
25
|
+
* Added `toolkit(component, method, args)` support for triggering methods on the class instance
|
26
|
+
* Added `transitionEnd` flag
|
27
|
+
* Refactored `toolkit()` to return a single instance instead of multiple instances
|
28
|
+
* Removed `i()` and `item()` jQuery collection methods
|
42
29
|
* Component
|
43
|
-
* Added
|
44
|
-
* Added
|
45
|
-
* Added `
|
46
|
-
*
|
47
|
-
|
48
|
-
* Removed
|
30
|
+
* Added a `initialize()` method that is triggered within all constructors
|
31
|
+
* Added a `destroy()` method that will unbind all events, remove elements, and delete the instance
|
32
|
+
* Added automatic `this` scope binding to all methods on a class instance
|
33
|
+
* Refactored `bindEvents()` with an easier lightweight syntax
|
34
|
+
* Accordion
|
35
|
+
* Removed `headerElement`, `sectionElement` options
|
36
|
+
* Blackout
|
37
|
+
* Fixed incorrect `.loader-spinner` class
|
49
38
|
* Carousel
|
50
|
-
*
|
51
|
-
*
|
52
|
-
|
53
|
-
*
|
54
|
-
*
|
55
|
-
*
|
56
|
-
*
|
57
|
-
|
58
|
-
* Added
|
59
|
-
*
|
39
|
+
* Removed `nextButton`, `prevButton` properties
|
40
|
+
* Removed `itemsElement`, `tabsElement`, `nextElement`, `prevElement` options
|
41
|
+
* Code
|
42
|
+
* Added overflow scrolling for touch devices
|
43
|
+
* Flyout
|
44
|
+
* Disabled automatically for touch devices
|
45
|
+
* Removed `contentElement` option
|
46
|
+
* Input
|
47
|
+
* Added `hideOpened` option to selects to hide other opened selects
|
48
|
+
* Updated `native` option value to be `Toolkit.isTouch` by default
|
49
|
+
* Lazy Load
|
50
|
+
* Removed `isLoaded` property
|
51
|
+
* Mask
|
52
|
+
* Added `selector` option to bind toggle events to
|
53
|
+
* Renamed `.maskable` to `.mask-target`
|
54
|
+
* Removed `messageElement` option
|
60
55
|
* Modal
|
61
|
-
*
|
62
|
-
*
|
63
|
-
*
|
64
|
-
*
|
65
|
-
*
|
56
|
+
* Added `$modal-mobile-breakpoint` to apply mobile widths to the modal
|
57
|
+
* Added `submit()` method for submitting forms
|
58
|
+
* Updated with new markup
|
59
|
+
* Renamed `.modal-event-submit` to `.modal-submit`
|
60
|
+
* Renamed `.modal-event-close` to `.modal-hide`
|
61
|
+
* Removed `.modal-handle` within the template
|
62
|
+
* Removed `elementBody` property
|
63
|
+
* Removed `contentElement`, `closeElement`, `closeEvent`, `submitEvent` options
|
64
|
+
* Removed `sticky-*` animations
|
65
|
+
* Popover, Tooltip
|
66
|
+
* Removed `titleElement`, `contentElement` options
|
67
|
+
* Showcase
|
68
|
+
* Updated with new markup
|
69
|
+
* Renamed `.showcase-event-prev` to `.showcase-prev`
|
70
|
+
* Renamed `.showcase-event-next` to `.showcase-next`
|
71
|
+
* Renamed `.showcase-event-close` to `.showcase-hide`
|
72
|
+
* Renamed `.showcase-event-jump` to `.showcase-tabs a`
|
73
|
+
* Removed `nextButton`, `prevButton` properties
|
74
|
+
* Removed `transition`, `itemsElement`, `tabsElement`, `prevElement`, `nextElement`,
|
75
|
+
`closeEvent`, `jumpEvent`, `prevEvent`, `nextEvent` options
|
76
|
+
* Tabs
|
77
|
+
* Removed `navElement`, `sectionElement` options
|
78
|
+
* Type Ahead
|
79
|
+
* Removed `contentElement` option
|
data/license.md
CHANGED
@@ -1,23 +1,26 @@
|
|
1
|
-
Copyright (c)
|
1
|
+
Copyright (c) 2010-2014, The Titon Project, Miles Johnson.
|
2
2
|
All rights reserved.
|
3
3
|
|
4
|
-
Redistribution and use in source and binary forms, with or without
|
5
|
-
|
4
|
+
Redistribution and use in source and binary forms, with or without modification,
|
5
|
+
are permitted provided that the following conditions are met:
|
6
6
|
|
7
|
-
|
7
|
+
1. Redistributions of source code must retain the above copyright notice,
|
8
8
|
this list of conditions and the following disclaimer.
|
9
9
|
|
10
|
-
|
11
|
-
this list of conditions and the following disclaimer in the documentation
|
12
|
-
|
10
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer in the documentation and/or
|
12
|
+
other materials provided with the distribution.
|
13
|
+
|
14
|
+
3. Neither the name of the copyright holder nor the names of its contributors may
|
15
|
+
be used to endorse or promote products derived from this software without specific prior written permission.
|
13
16
|
|
14
17
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
15
18
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
16
19
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
17
20
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
18
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
22
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
23
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
24
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
26
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/readme.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
\/_/ \/_____/\/_____/\/_____/\/_/\/_/ \/_/ \/_/
|
7
7
|
```
|
8
8
|
|
9
|
-
# Toolkit v1.
|
9
|
+
# Toolkit v1.4.0 #
|
10
10
|
|
11
11
|
Titon Toolkit is a collection of very powerful user interface components and utility classes
|
12
12
|
for the responsive, mobile, and modern web. Each component represents encapsulated HTML, CSS,
|
data/roadmap.md
CHANGED
@@ -2,30 +2,46 @@
|
|
2
2
|
|
3
3
|
All releases will contain bug fixing and polishing for current features.
|
4
4
|
|
5
|
-
### 1.4.0 ###
|
6
|
-
* Off Canvas - A component for displaying side menus off the canvas (viewport). Useful for sliding mobile navigations.
|
7
|
-
* Marquee - A component that displays multiple slides at once and allows for cycling through a variable amount. A sister component to the carousel.
|
8
|
-
* Divider - A component for dividing content horizontally or vertically.
|
9
|
-
* Add destroy method to clean up and remove the component.
|
10
|
-
|
11
5
|
### 1.5.0 ###
|
12
|
-
*
|
13
|
-
*
|
14
|
-
*
|
6
|
+
* Add more features support to Carousel.
|
7
|
+
* Use pixels instead of percentages for transitions.
|
8
|
+
* Add support for multiple items displayed at once.
|
9
|
+
* Add support for variable amount of items being cycled at once.
|
10
|
+
* Add support for infinite scrolling (move items around).
|
15
11
|
* Add deferred/promise integration.
|
12
|
+
* Make nested menus expandable on touch devices (drop).
|
13
|
+
* Rename Tabs to Tab.
|
14
|
+
* Remove cookie dependency.
|
16
15
|
|
17
16
|
### 2.0.0 ###
|
18
17
|
* Remove the MooTools port.
|
18
|
+
* Remove CSS dependencies from the JS layer, use the DOM (classes vs attributes, semantic tags).
|
19
|
+
* Make CSS class names customizable.
|
20
|
+
* Move CSS component styles into mixins, that are inherited into classes.
|
21
|
+
* Use :: pseudo element syntax.
|
19
22
|
* Drop IE8 support and upgrade to jQuery 2.
|
20
23
|
* Replace examples with unit tests.
|
21
|
-
*
|
24
|
+
* Update to use AMD/requirejs.
|
22
25
|
* Switch to Gulp.
|
23
|
-
* Updated to Sass 3.
|
26
|
+
* Updated to Sass 3.3 (maps for settings).
|
24
27
|
* Refactor events for before/after conditions.
|
25
28
|
* RTL support.
|
29
|
+
* Take Google fundamentals into consideration - https://developers.google.com/web/fundamentals/
|
26
30
|
|
27
31
|
### 3.0.0 ###
|
28
32
|
* Remove jQuery dependency and go straight vanilla?
|
29
|
-
* Switch to Less (removes sass/compass/ruby dependencies)
|
33
|
+
* Switch to Less (removes sass/compass/ruby dependencies).
|
30
34
|
* Implement custom elements / components - http://w3c.github.io/webcomponents/explainer/
|
31
|
-
* Separate component transitions into a stand alone layer that can be used anywhere.
|
35
|
+
* Separate component transitions into a stand alone layer that can be used anywhere.
|
36
|
+
* Use `calc()` in CSS.
|
37
|
+
|
38
|
+
### Components ###
|
39
|
+
* Dialog - A component that prompts the user for an action. Sister to the modal component.
|
40
|
+
* Guide - A component that displays introduction guides (popovers) in a sequential order. Useful for show casing new features and functionality.
|
41
|
+
* Flex - A grid component that uses flex box instead of floats.
|
42
|
+
|
43
|
+
### Behaviors ###
|
44
|
+
* Form Validator - Provides form validation.
|
45
|
+
* Data Binding - Provides 2 way data binding.
|
46
|
+
* Drag & Drop - Provides a drag and drop system.
|
47
|
+
* Move Lazy Load to behaviors.
|
data/scss/toolkit.scss
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* @copyright 2010-
|
3
|
-
* @license http://opensource.org/licenses/
|
2
|
+
* @copyright 2010-2014, The Titon Project
|
3
|
+
* @license http://opensource.org/licenses/BSD-3-Clause
|
4
4
|
* @link http://titon.io
|
5
5
|
*/
|
6
6
|
|
@@ -18,6 +18,7 @@
|
|
18
18
|
@import "toolkit/components/breadcrumb";
|
19
19
|
@import "toolkit/components/button";
|
20
20
|
@import "toolkit/components/button-group";
|
21
|
+
@import "toolkit/components/divider";
|
21
22
|
@import "toolkit/components/drop";
|
22
23
|
@import "toolkit/components/icon";
|
23
24
|
@import "toolkit/components/input";
|
@@ -40,10 +41,12 @@
|
|
40
41
|
@import "toolkit/components/matrix";
|
41
42
|
@import "toolkit/components/mask";
|
42
43
|
@import "toolkit/components/modal";
|
44
|
+
@import "toolkit/components/off-canvas";
|
43
45
|
@import "toolkit/components/pin";
|
44
46
|
@import "toolkit/components/popover";
|
45
47
|
@import "toolkit/components/showcase";
|
46
48
|
@import "toolkit/components/tabs";
|
49
|
+
@import "toolkit/components/toast";
|
47
50
|
@import "toolkit/components/tooltip";
|
48
51
|
@import "toolkit/components/type-ahead";
|
49
52
|
|
data/scss/toolkit/_common.scss
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
|
2
2
|
//-------------------- Toolkit --------------------//
|
3
3
|
|
4
|
-
$vendor-prefix: "";
|
5
|
-
$size-small-class: "small";
|
6
|
-
$size-large-class: "large";
|
7
|
-
$shape-
|
8
|
-
$shape-
|
9
|
-
$shape-
|
10
|
-
$shape-
|
11
|
-
$shape-skew-class: "skew";
|
4
|
+
$vendor-prefix: "" !default;
|
5
|
+
$size-small-class: "small" !default;
|
6
|
+
$size-large-class: "large" !default;
|
7
|
+
$shape-round-class: "round" !default;
|
8
|
+
$shape-oval-class: "oval" !default;
|
9
|
+
$shape-pill-class: "pill" !default;
|
10
|
+
$shape-skew-class: "skew" !default;
|
12
11
|
|
13
12
|
//-------------------- Colors --------------------//
|
14
13
|
|
@@ -104,26 +103,31 @@ $lazyLoad-transition: $default-transition !default;
|
|
104
103
|
$mask-transition: $default-transition !default;
|
105
104
|
$matrix-transition: $default-transition !default;
|
106
105
|
$modal-transition: $default-transition !default;
|
106
|
+
$offCanvas-transition: .5s !default;
|
107
107
|
$pin-transition: .2s !default;
|
108
108
|
$progress-transition: .5s !default;
|
109
109
|
$showcase-transition: $default-transition !default;
|
110
110
|
$switch-transition: $default-transition !default;
|
111
|
+
$toast-transition: $default-transition !default;
|
111
112
|
$tooltip-transition: $default-transition !default;
|
112
113
|
|
113
114
|
//-------------------- Z Index --------------------//
|
114
115
|
|
115
116
|
// 1) Modal and Showcase should be higher than Blackout
|
116
117
|
// 2) Tooltip and Popover should be higher than Modals in case they exist within them
|
117
|
-
|
118
|
-
|
119
|
-
$
|
120
|
-
$
|
121
|
-
$
|
122
|
-
$
|
123
|
-
$
|
124
|
-
$
|
125
|
-
$
|
126
|
-
$
|
118
|
+
// 3) Off Canvas should be the lowest so everything can display above it
|
119
|
+
|
120
|
+
$blackout-zindex: 600 !default;
|
121
|
+
$drop-zindex: 500 !default;
|
122
|
+
$flyout-zindex: 500 !default;
|
123
|
+
$mask-zindex: 500 !default;
|
124
|
+
$modal-zindex: 610 !default;
|
125
|
+
$offCanvas-zindex: 250 !default;
|
126
|
+
$popover-zindex: 700 !default;
|
127
|
+
$showcase-zindex: 610 !default;
|
128
|
+
$toast-zindex: 500 !default;
|
129
|
+
$tooltip-zindex: 700 !default;
|
130
|
+
$typeAhead-zindex: 500 !default;
|
127
131
|
|
128
132
|
//-------------------- Responsive --------------------//
|
129
133
|
|
@@ -166,9 +170,23 @@ $loader-bubble-size: 1.5rem !default;
|
|
166
170
|
|
167
171
|
//-------------------- Modal --------------------//
|
168
172
|
|
169
|
-
$modal-animation: (
|
170
|
-
|
171
|
-
|
173
|
+
$modal-animation: ("fade", "from-above", "from-below", "slide-in-top", "slide-in-right", "slide-in-bottom", "slide-in-left") !default;
|
174
|
+
$modal-mobile-breakpoint: 640px !default; // iOS5
|
175
|
+
|
176
|
+
//-------------------- Off Canvas --------------------//
|
177
|
+
|
178
|
+
$offCanvas-left-width: 20% !default;
|
179
|
+
$offCanvas-right-width: 20% !default;
|
180
|
+
$offCanvas-left-width-mobile: 90% !default;
|
181
|
+
$offCanvas-right-width-mobile: 90% !default;
|
182
|
+
$offCanvas-mobile-breakpoint: 640px !default; // iOS5
|
183
|
+
|
184
|
+
//-------------------- Toast --------------------//
|
185
|
+
|
186
|
+
$toast-animation: ("fade", "slide-up", "slide-down", "slide-left", "slide-right") !default;
|
187
|
+
$toast-position: (
|
188
|
+
"top-left", "top-center", "top-right", "center-left",
|
189
|
+
"center-right", "bottom-left", "bottom-center", "bottom-right"
|
172
190
|
) !default;
|
173
191
|
|
174
192
|
//-------------------- Popover, Tooltip --------------------//
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* @copyright 2010-
|
3
|
-
* @license http://opensource.org/licenses/
|
2
|
+
* @copyright 2010-2014, The Titon Project
|
3
|
+
* @license http://opensource.org/licenses/BSD-3-Clause
|
4
4
|
* @link http://titon.io
|
5
5
|
*/
|
6
6
|
|
@@ -103,7 +103,7 @@
|
|
103
103
|
left: 0;
|
104
104
|
opacity: 0;
|
105
105
|
z-index: 1;
|
106
|
-
transition: opacity $carousel-transition;
|
106
|
+
transition: opacity $carousel-transition, visibility $carousel-transition;
|
107
107
|
|
108
108
|
&.show { z-index: 5; }
|
109
109
|
}
|